023、用户管理和权限管理

* SQL分类

DDL:操作数据库和表

DML:增改删表中数据

DQL:查询表中数据

 DCL:管理用户 ---授权

* DBA:数据库管理员

一、管理用户

       1、添加用户:

        * 语法:CREATE USER '用户名'@'主机名' IDENTIFIED BY 密码';-    举例:

CREATE USER 'zhangsan'@'localhost' IDENTIFIED BY '123';---账户名:zhangsan,密码:123,只能通过本地登录

CREATE USER 'lisi'@'localhost' IDENTIFIED BY '123';

CREATE USER 'lisi'@'%' IDENTIFIED BY '123';---账户名:lisi,密码:123,能通过本地和任何外网登录

说明:数据库所有的用户都放在 文件夹 mysql   ->     user下:

CREATE USER 'zhangsan'@'localhost' IDENTIFIED BY '123';---账户名:zhangsan,密码:123,只能通过本地登录

CREATE USER 'lisi'@'localhost' IDENTIFIED BY '123';

CREATE USER 'lisi'@'%' IDENTIFIED BY '123';---账户名:lisi,密码:123,能通过本地和任何外网登录

FLUSH PRIVILEGES;---这个是保险的,非必须,目的是刷新

SELECT * FROM USER;

注意(在创建完用户之后,用cmd去登录创建的普通用户有时无法登录,并产生如下问题:

ERROR 1045 (28000): Access denied for user 'zhangsan'@'localhost' (using passwor

d: YES)

原因:在SQLyog中创建的用户,需要调用FLUSH PRIVILEGES语句来刷新

注意:用cmd登录时,不要在语句后面下分号,会被当做密码的一部分

2、删除用户

    * 语法:DROP USER '用户名'@'主机名';

举例:

DROP USER 'lisi'@'localhost';

SELECT * FROM USER;

      三、修改密码

        方式一:

      UPDATE USER SET PASSWORD = PASSWORD('密码') WHERE USER='用户名';

      方式二:

SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('密码');

举例:

UPDATE USER SET PASSWORD = PASSWORD('abc') WHERE USER='zhangsan';

SET PASSWORD FOR 'lisi'@'%' = PASSWORD('abc');

4、如果忘记了root密码怎么办?

步骤一、

使用管理员方式打开cmd,然后输入如下命令并分别执行:

 net stop mysql

mysqld  --skip-grand-tables;

执行完之后,不会输出任何信息,光标停在那闪烁。

步骤二、

使用管理员方式重新开启一个cmd,输入如下命令并分别执行:

use mysql;

updata user set password=password(‘输入需要设置的新密码’) where user=’root’;

步骤三、执行完后在cmd中输入:

net stop mysql;

net start mysql;‘’

mysql –uroot –p新密码                            ---》直接按回车键

5、查询用户

  执行如下指令即可查询:

 use mysql ;

select * from user;

二、权限管理

      1.查询权限:

       

SHOW GRANTS FOR ‘用户名’@’主机名’

举例:

所有用户列表

SHOW GRANTS FOR 'lisi'@'%';

    

  2.授权权限:

       

grant  权限列表  on  数据库名.表名  to   用户名’@’主机名’

举例:

GRANT SELECT,UPDATE ON sql_sel.`account` TO 'lisi'@'%';

注意:设置所有给某用户所有权可以写成:

GRANT ALL ON *.* TO '用户名'@'主机名';

举例:

GRANT ALL ON *.* TO 'lisi'@'%';

执行之前:

执行之后:

      3.撤销授权

 revoke 权限列表   on 数据库名.表名  from     用户名’@’主机名’

取消用户所有权限:

REVOKE ALL ON *.* FROM '用户名'@'主机名';

三、权限列表

Mysql权限
权限权限级别权限说明
CREATE数据库、表或索引创建数据库、表或者索引
DROP数据库或表删除数据库或表
GRANT OPTION数据库、表或者保存的程序赋予权限选项
REFERENCES数据库或表 
ALTER更改表
DELETE删除数据权限
INDEX索引权限
INSERT插入权限
SELECT查询权限
UPDATE更新权限
CREATE VIEW视图创建视图权限
SHOW VIEW视图查看视图权限
ALTER ROUTINE存储过程更改存储过程
CREATE ROUTINE存储过程创建存储过程
EXECUTE存储过程执行存储过程
FILE服务器主机上的文件访问文件访问权限
CREATE TEMPORARY TABLES服务器管理创建临时表
LOCK TABLES服务器管理锁表
CREATE USER服务器管理创建用户
PROCESS服务器管理查看进程权限
RELOAD服务器管理执行flush refresh,reload等命令的权限
REPLICATION CLIENT服务器管理复制权限
REPLICATION SLAVE服务器管理复制权限
SHOW DATABASES服务器管理查看数据库权限
SHUTDOWN服务器管理关闭数据库权限
SUPER服务器管理执行KILL线程

 

Mysql 数据库层面(db表)权限
权限说明
SELECT查询
INSERT插入
UPDATE更新
DELETE删除
CREATE创建表或者索引
DROP删除库、表
GRANT赋予权限选项
INDEX索引
ALTER更改表
CREATE_TMP_TABLE创建临时表
LOCK_TABLES锁表
SHOW_VIEW查看视图
CREATE_VIEW创建视图
CREATE_ROUTION创建存储过程
ALTER_ROUTION更改存储过程
EXECUTE执行存储过程
EVENT创建时间调度器
TRIGGER创建触发器

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值