20210422安全性之权限和角色

【摘要】 复习
对于数据库 安全性的控制有四个层次
与四个安全性的层级有关联
用户身份的验证 登录名和密码
授权回收授权是对用户去做的,用户和登录名之间是存在关联的,再数据库的安全性种可以找到用户,再用户的某个安全性里可以找到某个用户
创建登录名
创建用户
❖[例1] 创建一个sql server验证模式的登录名
❖[例2] 创建一个windows验证模式的登录名

复习

对于数据库 安全性的控制有四个层次

与四个安全性的层级有关联

用户身份的验证 登录名和密码

授权回收授权是对用户去做的,用户和登录名之间是存在关联的,再数据库的安全性种可以找到用户,再用户的某个安全性里可以找到某个用户

创建登录名

创建用户

[1] 创建一个sql server验证模式的登录名
❖[2] 创建一个windows验证模式的登录名
CREATE LOGIN Zhangsan
WITH PASSWORD = ‘abc123!CREATE LOGIN [win2k3\ Administrator]
FROM WINDOWS

❖[3] 创建具有默认架构的数据库用户
创建用户
CREATE USER dbUser1 FOR LOGIN zhangsan
WITH DEFAULT_SCHEMA = student;

  
 
select *
from student
  
 

在左侧的目录种选中为P1的用户名后可以新建查询

[4.1] 把查询Student表权限授给用户U1
GRANT SELECT
ON Student
TO U1;

--把student表和Course表的全部权限授予用户u2和u3

grant all privileges
on Student,Course
to u2,u3;--实际不能这么写,要一个一个写
  
 
--[例4.3] 把对表SC的查询权限授予所有用户
GRANT SELECT
ON SC
TO PUBLIC; 
--所有用户都属于public这一组

  
 
--[例4.4] 把查询Student表和修改学生学号的权限授给用户U4

GRANT UPDATE(Sno), SELECT
ON Student
TO U4;WITH GRANT OPTION子句:
	⬧ 指定:可以再授予
	⬧ 没有指定:不能传播
❖不允许循环授权
u1--u2--u3!--u1

--影响权力的回收
  
 
[4.5] 把对表SC的INSERT权限授予U5用户,并允许他再将此权限
授予其他用户
GRANT INSERT
ON SC
TO U5
WITH GRANT OPTION;

  
 

数据库就一个,对应相关联的用户操作的数据库

数据库是所有用户操作的结果

2.REVOKE
❖授予的权限可以由数据库管理员或其他授权者用REVOKE语句收回
❖REVOKE语句的一般格式为:
⬧ REVOKE <权限>[,<权限>]...ON <对象类型> <对象名>[,<对象类型><对象名>]…
⬧ FROM <用户>[,<用户>]...[CASCADE | RESTRICT];
[4.8] 把用户U4修改学生学号的权限收回
REVOKE UPDATE(Sno)
ON Student 
FROM U4;

--收回全部权限
revoke select on SC from public;

  
 
❖数据库管理员:
	⬧ 拥有所有对象的所有权限
	⬧ 根据实际情况不同的权限授予不同的用户
❖用户:
	⬧ 拥有自己建立的对象的全部的操作权限
	⬧ 可以使用GRANT,把权限授予其他用户
❖被授权的用户
	⬧ 如果具有“继续授权”的许可,可以把获得的权限再授予其他用户
❖所有授予出去的权力在必要时又都可用REVOKE语句收回

❖3.创建数据库模式的权限
❖数据库管理员在创建用户时实现
❖CREATE USER语句格式
	⬧ CREATE USER <username>[WITH][DBA|RESOURCE|CONNECT];
❖注: CREATE USER不是SQL标准,各个系统的实现相差甚远

  
 
--revoke

revoke insert
on sc
from u2 cascade;--必须要写cascade 级联回收  就是u2还给u3赋值了;
❖数据库管理员:
	⬧ 拥有所有对象的所有权限
	⬧ 根据实际情况不同的权限授予不同的用户
❖用户:
	⬧ 拥有自己建立的对象的全部的操作权限
	⬧ 可以使用GRANT,把权限授予其他用户
❖被授权的用户
	⬧ 如果具有“继续授权”的许可,可以把获得的权限再授予其他用户
❖所有授予出去的权力在必要时又都可用REVOKE语句收
  
 

数据库角色(续)

3.将一个角色授予其他的角色或用户 ⬧ GRANT <角色1>[,<角色2>]…
	⬧ TO <角色3>[,<用户1>]… 
	⬧ [WITH ADMIN OPTION]
	⬧ 该语句把角色授予某用户,或授予另一个角色
	⬧ 授予者是角色的创建者或拥有在这个角色上的ADMIN OPTION
	⬧ 指定了WITH ADMIN OPTION则获得某种权限的角色或用户还可以把这种权
限授予其他角色
数据库角色(续)
	一个角色的权限:直接授予这个角色的全部权限加上其他角色授予这个角色的全部权限

  
 

定义角色就是为了简化重复授权,角色是权限的集合

1.角色的创建

⬧ CREATE ROLE <角色名>

2.给角色授权

⬧ GRANT <权限>[,<权限>]…

⬧ ON <对象类型>对象名

⬧ TO <角色>[,<角色>]…

###3.将一个角色授予其他的角色或用户

GRANT <角色1>[,<角色2>]…
⬧ TO <角色3>[,<用户1>]… 
⬧ [WITH ADMIN OPTION]
⬧ 该语句把角色授予某用户,或授予另一个角色
⬧ 授予者是角色的创建者或拥有在这个角色上的ADMIN OPTION
⬧ 指定了WITH ADMIN OPTION则获得某种权限的角色或用户还可以把这种权
限授予其他角色
  
 

一个角色的权限:直接授予这个角色的全部权限加上其他角色授予这个角色的全部权限

权限是可以叠加的;

create role r1;

grant select,update,insert
on student
to r1;

grand r1
to u1,u2,u3;  --sql server不支持这种

--将这个角色授予其他用户
exec sp_addrolemember r1,u4;
--把角色r1赋给用户u4
--sql server的函数  --与标准sql不同
--回收
exec sp_droprolemember r1,u4;
--两个参数,第一个参数是角色,第二个参数是用户

--(4) 可以一次性通过R1来回收U1的这3个权限
REVOKE R1 
FROM U1;

  
 

文章来源: blog.csdn.net,作者:小高写BUG,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/gao1213977085/article/details/116034769

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享