sql server 中对表 函数 视图 存储过程配置权限

新建查询 

查询全部的表

select * from sysobjects where xtype='U'


存储过程标量

select * from sysobjects where xtype='P '

 

函数

select * from sysobjects where xtype='FN'


视图

select * from sysobjects where xtype='V'

 

1、创建用户

CREATE LOGIN developer   

   WITH PASSWORD = '强密码',  

default_database= test;

2、加入用户角色,登录名映射数据库用户

create user developer for login developer

use test;

go

EXEC sp_change_users_login 'Update_One', 'developer', 'developer';

go

3、分配权限,创建存储过程,利用grant给全部的权限,利用deny限制权限

4、创建存储过程例子

create procedure viewProce

as 

begin 

SELECT

'deny INSERT,VIEW DEFINITION,ALTER,UPDATE, TAKE OWNERSHIP,CONTROL,DELETE,SELECT,REFERENCES on test.dbo.'+

Name+' to developer;' as t_sql 

from sysobjects where xtype='V'

end



execute viewProce

或者执行查询拼接sql复制执行

 

2、单独分配权限例子

其中INSERT是插入,

VIEW DEFINITION是查看定义,

VIEW CHANGE TRACKING 跟踪更新,

ALTER更改,

UPDATE更新,

TAKE OWNERSHIP接管所有权,

CONTROL控制,

DELETE删除,

SELECT选择查询,

REFERENCES引用

deny INSERT,VIEW DEFINITION,VIEW CHANGE TRACKING ,ALTER,UPDATE, TAKE OWNERSHIP,CONTROL,DELETE,SELECT,REFERENCES on dbo.GZ_PATSETDATA0013 to developer;

 

视图

 

deny INSERT,VIEW DEFINITION ,ALTER,UPDATE, TAKE OWNERSHIP,CONTROL,DELETE,SELECT,REFERENCES on dbo.GZ_PATSETDATA0013 to developer;

 

标量函数

deny VIEW DEFINITION ,ALTER,EXECUTE,REFERENCES,TAKE OWNERSHIP,CONTROL on dbo.d to developer;

存储过程

deny execute ,TAKE OWNERSHIP,ALTER on test.dbo.st_pd_TakeSubsidyDetail to developer;

3、master权限到数据库的权限配置用户权限

一、创建maintainer

1、打开ssms连接sa,打开安全性->登录名右键新建

 

填写常规的登录名、强密码、默认数据库。

选择合适的服务器角色和用户映射,这里选择public 架构dbo。

 

安全对象如图

 

2、打开数据库->安全性 右键选择用户->属性

 

配置两个函数的拒绝权限

 

3、选择对应的数据右键打开属性

配置权限

 

4、不分配各个顶层的用户权限,否则不能修改部分下层权限

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章