[SQL SERVER][Maintain]權限管理(2)

[SQL SERVER][Maintain]權限管理(2)

上一篇介紹完SERVER Level後,這一篇繼續介紹Database 和 Object Level。

 

使用SSMS建立 test 使用者後,

選擇資料庫安全性實體。

image

圖中物件類型是有階層的,資料庫物件最大依序到使用者定義資料表類型最小。

 

使用SSMS

image

該使用者只能夠存取該資料庫中 myheap 資料表,

而且還可以針對資料表中資料行進行權限管理,

也可以選擇每個物件屬性進行權限管理(如下圖)。

image

 

使用TSQL

USE [mydemo]
GO
CREATE USER [APUSER] FOR LOGIN [test]
GO
use [mydemo]
GO
GRANT INSERT ON [dbo].[myheap] TO [test]
GRANT SELECT ON [dbo].[myheap] TO [Atest
GRANT VIEW DEFINITION ON [dbo].[myheap] TO [Atest
DENY DELETE ON [dbo].[myheap] TO [APUSER] –無 delete 權限
GRANT UPDATE ON [dbo].[myheap] ([c1]) TO [test] AS [dbo]
DENY UPDATE ON [dbo].[myheap] ([c3]) TO [test] --對資料行C3無 update 權限
GRANT UPDATE ON [dbo].[myheap] ([c2]) TO [test] AS [dbo]
GRANT UPDATE ON [dbo].[myheap] ([c1]) TO [test] AS [dbo]
GO

 

建立結構描述方便管理該使用者權限

使用SSMS

image

 

使用TSQL

USE [mydemo]
GO
CREATE SCHEMA [AP] AUTHORIZATION [dbo]
GRANT DELETE ON SCHEMA::[AP] TO [test]
GRANT UPDATE ON SCHEMA::[AP] TO [test]
GRANT EXECUTE ON SCHEMA::[AP] TO [test]
GRANT INSERT ON SCHEMA::[AP] TO [test]
GRANT SELECT ON SCHEMA::[AP] TO [test]
GO
 
資料庫屬性->權限管理
使用SSMS
image
可以限制使用者針對資料庫存取權限。
如限制資料表節點不顯示資料表物件。
拒絕授予檢視定義權限
image
使用者 test 即無法看到該資料庫中所有資料表物件。
使用TSQL
--授予
GRANT VIEW DEFINITION TO [test] AS [dbo]
 
--拒絕
DENY VIEW DEFINITION TO [test]

 

SQL SERVER 權限總覽示意圖

image