MySQL总结(十四)DCL数据库控制语言-详解

 

DCL(Data Control Language)

我们现在默认使用的都是 root 用户,超级管理员,拥有全部的权限。但是,一个公司里面的数据库服务器上面可能同时运行着很多个项目的数据库。所以,我们应该可以根据不同的项目建立不同的用户,分配不同的权限来管理和维护数据库。

  • 注: mysqld 是 MySQL 的主程序,服务器端。mysql 是 MySQL 的命令行工具,客户端。

1. 创建用户

1.1 语法:

CREATE USER ' 用户名'@' 主机名' IDENTIFIED BY ' 密码';

1.2 关键字说明:

关键字说明
'用户名'将创建的用户名
'主机名'指定该用户在哪个主机上可以登录,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登录,可以使用通配符%
'密码'该用户的登录密码,密码可以为空,如果为空则该用户可以不需要密码登录服务器

1.3 具体操作:

  • 创建 user1 用户,只能在 localhost 这个服务器登录 mysql 服务器,密码为 123
create user 'user1'@'localhost' identified by '123';
  • 创建 user2 用户可以在任何电脑上登录 mysql 服务器,密码为 123
create user 'user2'@'%' identified by '123';
  • 注: 创建的用户名都在 mysql 数据库中的 user 表中可以查看到,密码经过了加密。

2. 给用户授权

用户创建之后,没有权限,需要给用户授权

2.1 语法:

GRANT 权限 1, 权限 2... ON 数据库名. 表名 TO ' 用户名'@' 主机名';

2.2 关键字说明:

关键字说明
GRANT…ON…TO授权关键字
权限授予用户的权限,如 CREATE、ALTER、SELECT、INSERT、UPDATE 等。如果要授予所有的权限则使用 ALL
数据库名. 表名该用户可以操作哪个数据库的哪些表。如果要授予该用户对所有数据库和表的相应操作权限则可用* 表示,如* . *
' 用户名'@' 主机名'给哪个用户授权,注:有 2 对单引号

2.3 具体操作:

  • 给 user1 用户分配对 test 这个数据库操作的权限:创建表,修改表,插入记录,更新记录,查询
grant create,alter,insert,update,select on test.* to 'user1'@'localhost';
  • 给 user2 用户分配所有权限,对所有数据库的所有表
grant all on *.* to 'user2'@'%';
  • 注: 用户名和主机名要与上面创建的相同,要加单引号。

3. 撤销授权

3.1 语法:

REVOKE 权限 1, 权限 2... ON 数据库. 表名 revoke all on test.* from 'user1'@'localhost'; ' 用户名'@' 主机名';

3.2 关键字说明:

关键字说明
REVOKE…ON…FROM撤销授权关键字
权限用户的权限,如 CREATE、ALTER、SELECT、INSERT、UPDATE 等,所有的权限则使用 ALL
数据库名. 表名对哪些数据库的哪些表,如果要取消该用户对所有数据库和表的操作权限则可用 * 表示,如 * . *
' 用户名'@' 主机名'给哪个用户撤销

3.3 具体操作:

  • 撤销 user1 用户对 test 数据库所有表的操作的权限
revoke all on test.* from 'user1'@'localhost';
  • 注: 用户名和主机名要与创建时相同,各自要加上单引号

4. 查看授权

4.1 语法:

SHOW GRANTS FOR ' 用户名'@' 主机名';

4.2 具体操作:

  • 查看 user1 用户的权限

  • 注: usage 是指连接(登陆)权限,建立一个用户,就会自动授予其 usage 权限(默认授予)。

5. 删除用户

5.1 语法:

DROP USER ' 用户名'@' 主机名';

5.2 具体操作:

  • 删除 user2
drop user 'user2'@'%';

6. 修改管理员密码

6.1 语法:

mysqladmin -uroot -p password 新密码

  • 注: 需要在未登陆 MySQL 的情况下操作,新密码不需要加上引号。

6.2 具体操作:

  • 1)将 root 管理员的新密码改成 123456
  • 2)要求输入旧密码
  • 3)使用新密码登录

7. 修改普通用户密码

7.1 语法:

set password for ' 用户名'@' 主机名' = password(' 新密码');

  • 注: 需要在登陆 MySQL 的情况下操作,新密码要加单引号。

7.2 具体操作:

    1. 将'user1'@'localhost'的密码改成'666666'
    1. 使用新密码登录,老密码登录不了

OK,这篇就到这里

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值