SQL语句--数据库控制语言(DCL)语句及案例演示
DCL:数据库控制语言
-
授权、角色控制 针对mysql的权限控制是在数据库mysql里面的,所以在做操作之前需要使用use mysql;来进入并且进行操作 本文使用的数据库是MySQL8
-
现在我有这么一个需求,创建一个密码为recode_passwd,用户名为recode的用户,给这个用户赋予recode数据库的所有权限,并且可以进行连接
创建一个用户
- CREATE USER recode@localhost IDENTIFIED WITH mysql_native_password by recode_passwd;
mysql的密码默认使用的是caching_sha2_password加密格式,WITH mysql_native_password是可选的,使用默认的加密方式的话,可能会导致无法连接数据库
- FLUSH PRIVILEGES ;进行权限的刷新
为用户进行数据库授权
- GRANT ALL ON recode.* TO recode@localhost;
- FLUSH PRIVILEGES; 进行刷新
-
ALL是指用户对数据库的操作权限,比如SELECT、INSERT、UPDATE等(不包括create、drop权限),而ALL是指recode用户赋予recode数据库所有的权限 recode.* 是指recode用户可以操作recode数据库下面所有的表
查看授权信息
SHOW GRANTS FOR recode@localhost;
使用recode用户进行连接数据库
- mysql -u recode -h localhost -p
- Enter password:输入密码’recode_passwd’,密码会隐藏
对用户的权限进行撤销
- REVOKE ALL ON recode.* FROM recode@localhost;
- FLUSH PRIVILEGES ;进行刷新
权限和之前赋予的权限需要一致,可以通过SHOW GRANTS FOR recode@localhost;查看授权信息; 此操作需要root权限,否则会报错ERROR 1044 (42000): Access denied for user recode@localhost to database recode
以上就是对数据库权限的一些基本的操作
下一篇:
MySql5.7的下载安装教程