【数据库原理】SQL数据控制语句DCL

创建用户.

create user 'UserName'@'localhost' 
	identified by 'password';

语句分析

  • create user创建用户.
  • 'UserName'即将创建用户的用户名.
  • 'localhost'指定用户在哪个主机上可以登录,本地用户使用'localhost';如果想让用户可以在任意主机上登录,使用通配符%.
  • indentified by确认关键字,后接密码.
  • 'password' 用户用于登录的密码,如果为空,则无需密码即可登录服务器.

样例代码

create user 'kevin'@'localhost' identified by '123456';
//创建只能在本地登录的、名为kevin、密码为123456的用户

create user 'kevin'@'%' identified by '123456';
//创建能在任意主机登录的、名为kevin、密码为123456的用户

create user 'kevin'@'%';
create user 'kevin'@'%' identified by '';
//以上两句等价,都创建一个名为kevin、
//任意主机可登录并且无密码的用户

授予权限.

grant privileges on dbname.tablename 
		to 'username'@'host' identified by 'password'
		 [with grant option];

语句分析

  • privileges用户的操作权限,例如select、insert、update等,具体的见文末表格;另外,如果直接授予某个用户所有的权限,可以使用关键字all.
  • dbname数据库名;tablename表名,如果想要指代所有,则使用符号*.
  • 第二行的关键字和创建用户中的同义.
  • [with grant option]作为可选项,若附加上这一选项,则该用户可以将权限授予其它人,否则不可以.

样例代码

grant select on Test.TestTable to 'kevin'@'localhost' 
	identified by '123456';
//授予kevin能够在Test数据库中的TestTable中进行select的权限

grant all on *.* to 'kevin'@'%' with grant option;
//授予kevin在所有数据库中所有表的一切权限,
//并且kevin可以将权限授予他人,这波kevin杀疯了

收回权限.

revoke privilege on dbname.tablename 
	from 'username'@'host' ;

语句分析

  • 该操作对应于上面的授予权限,从某个用户处收回关于dbname.tablename的权限,其中的关键字和上述同义。

样例代码

revoke all on *.* from 'kevin'@'%';
//收回kevin的一切权限,终结他罪恶的一生

修改密码.

set password for 'username'@'host' = 
	password('new_password');

语句分析

  • 'username'@'host'是即将被修改密码的用户,如果就是当前用户,则该部分可以省略,也就是说代码形式为set password = password('new_password').

样例代码

set password = password('');
//清除当前用户的密码,虽然我也不知道当前用户是哪个

set password for 'kevin'@'localhost' 
	= password('abcdefg');
//修改kevin的密码

删除用户.

drop user 'username'@'host';

语句分析

  • drop user简单明了,删除用户,后接用户名以及登录主机.

样例代码

drop user 'kevin'@'localhost'
//kevin倒了

privileges表.

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44246009/article/details/108428564