数据库保护
创建用户
create user 'username'@'host' identified by 'password' [WITH] [DBA | RESOURCE | CONNECT];
其中,
‘username’:需要创建的用户名
‘host’:指定该用户可以在那台主机上登录
‘password’:密码
只有系统的超级用户才有创建一个新的数据库用户的权限,新创建的数据库用户有三种权限:CONNECT, RESOURCE 和 DBA。如果没有指定创建的新用户的权限,默认用户拥有CONNECT权限。拥有CONNECT权限的用户不能创建新用户,不能创建模式,也不能创建基本表,只能登录数据库。
为student数据库创建一个可在“127.0.0”C类网络中的任何主机访问的用户s1,初始密码为123456。
CREATE USER 's1'@'127.0.0.%' IDENTIFIED BY '123456';
将用户s1初始密码设置为过期。
ALTER USER 's1'@'127.0.0.%' PASSWORD EXPIRE;
从运行的结果中我们可以看出,虽然可以用s1登入到数据库中,但是当我们查看数据库中的数据的时候,显示错误,需要我们重新设置密码。
重新设置过密码之后就可以正常查询了。
将用户s1密码重置为:a2b3-c4
set password=password('a2b3-c4');
自主存取控制方法
通过SQL的GRANT和REVOKE语句实现
GRANT语句的一般格式:
GRANT <权限>[,<权限>]
ON <对象类型><对象类型>[,<对象类型>]...
TO <用户>[,<用户>]...
[WITH GRANT OPTION];
语义:将指定操作对象的指定操作权限授予指定的用户
指定 WITH CRANT OPTION 子句,则该用户有传播权
为用户s1授予查看SC表的权限
grant select on table student to s1;
回收用户s1对SC表的查看权限。
revoke select on table student from s1;
永远渴望,大智若愚(stay hungry, stay foolish)