杭州网站商场开发,企业网站建立意义何在,深圳最新消息,文明网站的建设与管理的思考DCL#xff08;数据控制语言#xff09;
DCL英文全称是Data Control Language(数据控制语言)#xff0c;用来管理数据库用户、控制数据库的访问权限。
一、管理用户
1、查询用户
在MySQL数据库管理系统中#xff0c;mysql 是一个特殊的系统数据库名称#xff0c;它并不…DCL数据控制语言
DCL英文全称是Data Control Language(数据控制语言)用来管理数据库用户、控制数据库的访问权限。
一、管理用户
1、查询用户
在MySQL数据库管理系统中mysql 是一个特殊的系统数据库名称它并不是用户创建的普通数据库而是MySQL安装时自动创建并包含一系列系统表和信息的数据库它包含了MySQL服务器运行所需的系统表和元数据。
-- 这里的mysql是数据库名是mysql自带的一个数据库名称mysql下有一个user表
-- user表存储了所有MySQL用户账户的信息包括用户名、密码哈希、主机名、全局权限等
-- 但是不是所有用户都有权限查看这个user表的
select * from mysql.user;不是所有用户都有权限查看这个user表的可以在root用户下执行该sqlroot用户具有所有的权限。 Host主机名指定了用户可以从哪个主机连接到 MySQL 服务器。 localhost 表示用户只能从本地机器连接。而 % 是一个通配符表示用户可以从任何主机连接这通常用于远程连接但需要谨慎使用以避免安全风险。 User用户名代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯一标识一个用户。
2、创建用户
语法 CREATE USER 用户名主机名 IDENTIFIED BY 密码;实例
-- 创建用户dadao, 只能够在当前主机localhost访问, 密码123456;
create user dadaolocalhost identified by 123456;-- 创建用户knife, 可以在任意主机访问该数据库, 密码123456;
create user knife% identified by 123456;3、修改用户密码
语法 ALTER USER 用户名主机名 IDENTIFIED WITH mysql_native_password BY 新密码 ;实例
-- 修改用户dadao的访问密码为1234;alter user heima% identified with mysql_native_password by 1234;
修改报错 正确修改 4、 删除用户
语法 DROP USER 用户名主机名 ;实例
-- 删除 dadaolocalhost 用户drop user dadaolocalhost;注意事项:
在MySQL中需要通过用户名主机名的方式来唯一标识一个用户。主机名可以使用 % 通配。这类SQL开发人员操作的比较少主要是DBA Database Administrator 数据库管理员使用。
二、控制权限
mysql常用的权限权限列表 语法
-- 查询权限SHOW GRANTS FOR 用户名主机名 ;-- 授予权限GRANT 权限列表 ON 数据库名.表名 TO 用户名主机名;-- 撤销权限REVOKE 权限列表 ON 数据库名.表名 FROM 用户名主机名;注意事项 多个权限之间使用逗号分隔授权时 数据库名和表名可以使用 * 进行通配代表所有
实例
-- 查询 knife% 用户的权限show grants for knife%;-- 授予 knife% 用户company数据库所有表的所有操作权限grant all on company.* to knife%;-- 撤销 knife% 用户的company数据库的所有权限revoke all on company.* from knife%;1、查询权限
语法
-- 查询权限SHOW GRANTS FOR 用户名主机名 ;实例
-- 查询 knife% 用户的权限show grants for knife%;查询用户knife的权限 GRANT USAGE ON . TO ‘knife’%解释 GRANT 是授予权限的 SQL 命令。USAGE 是被授予的权限类型。USAGE 是一种非常基础的权限它实际上并不授予用户对数据库进行任何操作的能力ON . 表示这个权限适用于所有数据库第一个 *和所有表第二个 *。TO ‘knife’‘%’ 指定了权限被授予的用户这里的用户是 knife‘%’ 表示该用户可以从任何主机连接到 MySQL 服务器。 root用户的权限
2、授予权限
语法
-- 授予权限GRANT 权限列表 ON 数据库名.表名 TO 用户名主机名;实例 -- 授予 knife% 用户company数据库所有表的所有操作权限grant all on company.* to knife%;
授予knife用户company所有表的所有权限 再次查看knife的权限
3、撤销权限
语法
-- 撤销权限REVOKE 权限列表 ON 数据库名.表名 FROM 用户名主机名;实例
-- 撤销 knife% 用户的company数据库的所有权限revoke all on company.* from knife%;撤销knife对company数据额权限 再查看knife的权限