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中完全一样;