新建查询
查询全部的表
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、不分配各个顶层的用户权限,否则不能修改部分下层权限