首先我们得有一个数据库,数据库里有表
职工表:
讯享网 部门表:
接下来的操作都是针对以上的表
其次我们来建立登录用户

create login 王明 with password=''--创建登录用户,
讯享网
登录名为王明,密码为.
创建登录名之后,登录用户还不能对数据库进行操作,还要对登录用户创建数据库用户

讯享网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的权力但是没有收回他可以给别人授权的权力哦
用户权限回收问题
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/15874.html