新建查詢
查詢全部的表
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、不分配各個頂層的用戶權限,否則不能修改部分下層權限