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

database

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,这篇就到这里

以上是 MySQL总结(十四)DCL数据库控制语言详解 的全部内容, 来源链接: utcz.com/z/534249.html

回到顶部