首页 > 代码库 > mysql---数据控制语言(用户及其权限管理)

mysql---数据控制语言(用户及其权限管理)

用户管理

用户数据所在位置:

mysql中的所有用户,都存储在系统数据库(mysql)中的user 表中——不管哪个数据库的用户,都存储在这里。

技术分享

表初始内容如下:

技术分享

创建用户:

形式:

create  user  ‘用户名’@’允许登录的地址/服务器’  identified  by  ‘密码’;

说明:

1,允许登录的地址/服务器就是,允许该设定的位置,来使用该设定的用户名和密码登录,其他位置不行;

2,可见,mysql的安全身份验证,需要3个信息。

举例:

技术分享

查看mysql中的user表:

技术分享

删除用户:

drop  user  ‘用户名’@’允许登录的地址或服务器名’;

 

修改用户密码:

修改自己的密码:

set password = password(‘密码‘)

 

修改他人的密码(前提是有权限):

set password  for  ‘用户名‘@‘允许登录的地址‘ = password(‘密码‘)

 

 

权限管理

权限是什么?

mysql数据库,将其中所能做的所有事情,都分门别类分配到大约30多个权限中去了,其中每个权限,都是一个“单词”而已!,比如:

select:代表可以查询数据;

update:代表可以修改数据;

delete:代表可以删除数据;

.......

其中,有一个权限名叫做“all”:表示所有权限;

有如下权限:

技术分享

另一个表现形式(带中文说明):

技术分享

技术分享

授予权限:

形式:

grant  权限列表  on  某库.某个对象  to  ‘用户名’@’允许登录的位置’  【identified  by  ‘密码’】;

说明:

1,权限列表,就是,多个权限的名词,相互之间用逗号分开,比如:  select,  insert,  update

也可以写:all

2,某库.某个对象,表示,给指定的某个数据库中的某个“下级单位”赋权;

下级单位有:表名,视图名,存储过程名;  存储函数名;

其中,有2个特殊的语法:

*.*:      代表所有数据库中的所有下级单位;

某库.*  :代表指定的该库中的所有下级单位;

3,【identified  by  ‘密码’】是可省略部分,如果不省略,就表示赋权的同时,也去修改它的密码;

但:如果该用户不存储,此时其实就是创建一个新用户;并此时就必须设置其密码了

 

剥夺权限:

形式:

revoke  权限列表  on  某库.某个对象  from  ‘用户名’@’允许登录的位置’

其含义,跟grant中完全一样;

 

mysql---数据控制语言(用户及其权限管理)