0


SQL Server 创建用户,用户授权,实验报告

首先我们得有一个数据库,数据库里有表

职工表: 部门表:

接下来的操作都是针对以上的表

其次我们来建立登录用户

create login 王明 with password='123456'--创建登录用户,

登录名为王明,密码为123456.

创建登录名之后,登录用户还不能对数据库进行操作,还要对登录用户创建数据库用户

create user U1 for login 王明--创建数据库用户关联登录用户

这时候登录王明的账户,数据库会自动映射到数据库用户U1,由U1来进行对数据库的操作。

不过,只创建了用户,而用户还没有获得对数据库的操作权力,我们就要对数据库用户进行权力分配

有时间的小伙伴可以额外花点时间点击链接了解详细

1)设置Sql server用户对表、视图、存储过程、架构的增删改查权限

2)Schema是什么鬼?

3)什么是存储过程?

4)sql server 微软官方文档

好了,接下来我们进行用户的权力分配

题1:用户王明对两个表有SELECT权利;

grant select --对于职工数据表
on worker 
to U1
grant select --对于部门数据表
on deparyment 
to U1

其中分配格式为 :

grant [权力] on [表名] to [用户名]

这里要注意,权力可以多个,但在针对的表名只能一个

错误用例

--数据库会报错

grant select      
on worker,deparyment 
to U1

--不会报错用例

grant select,update    
on worker
to U1

题二:用户刘星对职工表有SELECT权利,对工资字段具有更新权利;

grant select --查询权力
on worker 
to U3

grant update  --字段更新权力
on worker(wages)
to U3

对于某个字段的权力分配:

grant [权力名] on [表名(字段名)] to [用户名]

题三:****用户张新具有修改这两个表结构的权利;

grant view definition 
on worker
to U4
grant view definition 
on deparyment
to U4

题四:用户周平具有对两个表所有权利,并具有给其他用户授权的权利;

grant all
on worker
to U5
with grant option

授予用户授权的方法,就是在授权语句后加上with grant option

用户就在获得权力的同时,也可将获得的权力分配给其他用户

题五: 用户杨兰具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权利,他不能查看每个人的工资。

这个要注意,权力分配最小为 select等语句,不能在加入max、min等聚集函数

因此我们要曲线救国,创建一个存有最高,最低,平均工资的视图,把select该视图的权力分配给用户杨兰

go
create view Weges(max,min,avg) --创建视图
as
select MAX(wages),MIN(wages),AVG(wages)
from worker
go

--分配权力
grant select 
on  Weges
to U6

我们已经对用户的权力进行了分配,那么我们如何收回权力呢?

题六:收回用户王明对两个表有SELECT权利;

revoke select 
on worker 
to U1
revoke select 
on deparyment 
to U1

对的,我们收回权力的格式与分配权力一样 只是把grant 换成 revoke

revoke [权力] on [表名] to [用户名]

要注意题四的权力收回

grant all        --题四的权力分配
on worker
to U5
with grant option

revoke all       --权力收回
on worker
to U5 CASCADE 

细心的小伙伴发不同了吗?

就是要在[用户名] 后加上 CASCADE

那为什么要加上CASCADE 呢?是因为你收回的U5的权力但是没有收回他可以给别人授权的权力哦

用户权限回收问题

标签: sql 数据库 database

本文转载自: https://blog.csdn.net/weighless/article/details/124707885
版权归原作者 weighless1129 所有, 如有侵权,请联系我们删除。

“SQL Server 创建用户,用户授权,实验报告”的评论:

还没有评论