mysql数据库的DCL操作

版权声明:未经协商,禁止转载 https://blog.csdn.net/CHENFU_ZKK/article/details/82722379

查看用户:
如果进入了mysql库:SELECT *FROM USER;
没有进入mysql库内:SELECT *FROM mysql.USER;

创建用户:
CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’;
host:可以是具体的IP,也可以用通配符 “%” 来指定任何IP

-- 创建用户
CREATE USER 'pwdManager'@'%' IDENTIFIED BY '1010';

授予权限:
GRANT privileges ON dbname.tablename TO ‘username’@’host’

  • privileges:值可以是SELECT,INSERT,UPDATE等,如果要授予所的权限则用ALL
  • dbname:数据库名
  • tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
-- 赋予权限
GRANT ALL ON pwddb.pwdManager TO 'pwdManager'@'%'

-- 刷新权限
FLUSH PRIVILEGES;

撤销权限:
REVOKE privilege ON dbname.tablename FROM ‘username’@’host’;

  • privilege :赋予的权限
  • dbname:数据库名
  • tablename :表名
-- 撤销权限
REVOKE ALL ON pwddb.pwdManager FROM 'pwdManager'@'%';

-- 刷新权限
FLUSH PRIVILEGES;

删除用户:
DROP USER ‘username’@’host’;

-- 删除用户
DROP USER 'pwdManager'@'%';

修改密码:
修改密码有多种方式:

  • 修改当前用户的密码(最简单的方式)
    SET PASSWORD=PASSWORD(‘newPassword’);
-- 修改当前用户的密码
SET PASSWORD=PASSWORD('111');
  • 修改指定用户密码(当前用户也可以只用)
    SET PASSWORD FOR ‘username’@’host’ = PASSWORD(‘newpassword’);
-- 修改指定用户的密码
SET PASSWORD FOR 'pwdManager'@'%' = PASSWORD('123456');
  • 修改authentication_string字段
-- mysql57版本的修改密码方式(会产生一个警告)
UPDATE MySQL.user SET authentication_string=PASSWORD('1234') WHERE USER='pwdManager'
-- 必须进行刷新操作,否则新密码不生效
FLUSH PRIVILEGES;

通常都是在安装MySQL5.7的时候使用最后一种修改密码方式
在安装的时候如果没有更改密码,后来通过免密码登录的方式更改密码,输入update mysql.user set password=password(‘root’) where user=’root’时会提示一个错误:
ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’
原来是mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
所以更改语句替换为update MySQL.user set authentication_string=password(‘root’) where user=’root’ ;即可

猜你喜欢

转载自blog.csdn.net/CHENFU_ZKK/article/details/82722379
今日推荐