数据库用户创建、角色创建、用户和角色授予权限和权限收回
文章目录
前言
记录一次学习数据库用户、角色创建和管理角色授权、用户授权以及权限回收。
授权与权限回收
SQL中使用GRANT和REVOKE语句来向用户授予或回收对数据的操作权限。GRANT语句向用户授予权限,REVOKE语句收回已经授予用户的权限`
GRANT语句的一般格式
GRANT <权限>[,<权限>]...
ON <对象类型><对象名>[,<对象类型><对象名>]...
TO <用户>[,<用户>]...
[WITH GRRANT OPTION];
如果指定了WITH GRRANT OPTION子句,则获得某种权限的用户还可以把这种权限再授予给其它用户。如果没有指定WITH GRRANT OPTION子句,则获得某种权限的用户只能使用该权限,不能传播该权限
REVOKE语句的一般格式
REVOKE <权限>[,<权限>]...
ON <对象类型><对象名>[,<对象类型><对象名>]...
FROM <用户>[,<用户>]...
[CASCADE| RESTRICT];
1.用户创建和授权
语句:create user “用户名”@“类型” identified by ‘密码’;
create user '用户名'@'localhost | ip | %' identified by '密码';
类型分三种:localhost 、一个具体ip、%
创建一个用户“U1”,密码’123456’
create user 'U1'@'localhost' identified by '123456';
授权
#给U1用户授予sc数据库c表的查询权限
grant select
on table sc.c
to 'U1'@'localhost';
#给用户U2数据库sc里s表的所有权限
grant ALL PRIVILEGES
on table sc.s
to 'U1'@'localhost';
授权回收
#权限回收
#回收U1对sc数据库c表的查询权限
revoke select
on table sc.c
from 'U1'@'localhost'
#收回U2用户对sc库s表的所有权限
revoke ALL PRIVILEGES
on table sc.s
from 'U1'@'localhost'
角色权限的授予和收回
角色权限授予和修改
创建一个角色:r1
CREATE ROLE R1;
#使用GRANT语句,使角色RI拥有Suden表的SELECT. UPDATE. INSERT
GRANT SELECT,UPDATE,INSERT
ON TABLE Student
TO R1;
#角色的权限修改。
GRANT DELETE
ON TABLE Student
TO R1
#使角色R1在原来的基础上增加了Student 表的DELETE权限。
通过角色给用户授予权限和收回权限
#将这个角色授予U1、U2使他们具有角色RI所包含的全部权限。
GRANT R1
TO U1,U2;
#一次性地通过R1来收回U1的这三个权限。
REVOKE R1
FROM U1;
角色权限的收回
REVOKE SELECT
ON TABLE Student
FROM R1;
使R1减少了SELECT权限。
总结
以上大概写了一下数据库用户创建和角色创建的方法和权限的授予和回收,不同数据库或者同一数据库不同版本可能语法不同。