天天看點

資料庫|權限管理

問題描述

使用者對資料的庫的通路以及對資料庫對象的操作都展現在權限上,具有什麼樣的權限,就能執行什麼樣的操作。權限對于資料庫來說至關重要,它是通路權限設定中的最後一道安全措施,管理好權限是保證資料庫安全的必要因素。

解決方案

在SQL Server中按照權限是否進行預定義,可以把權限分為預定義權限和自定義權限;按照權限是否與特定的對象有關,可以分為針對所有對象的權限和針對特殊對象的權限。

1)預定義和自定義權限

所謂預定義權限是在安裝SQL Server過程完成之後,不必通過授予即擁有的權限。例如伺服器角色和資料庫角色就屬于預定義權限,對象的所有者也擁有該對象的所有權限以及該對象所包含對象的所有權限。

自定義的權限是指需要經過授權或繼承才能得到的權限,大多數的安全主體都需要經過授權才能獲得對安全對象的使用權限。

2)所有對象和特殊對象的權限

針對所有對象的權限表示将針對SQL Server中的所有對象(例如CONTROL權限)都有的權限。針對特殊對象的權限是指某些權限隻能在指定的對象上起作用。例如,INSERT僅可以用于表的權限,不可以是存儲過程的權限;而EXECUTE隻可以是存儲過程的權限,不能作為表的權限等。

對于表和視圖,擁有者可以授予資料庫使用者INSERT、UPDATE、DELETE、SELECT和REFERENCES共五種權限。在資料庫使用者要對表執行相應的操作之前,必須事先獲得相應的操作權限。例如,如果使用者想浏覽表中的資料,首先必須獲得擁有者授予的SELECT權限。

下表是一些常用的權限:

資料庫

CREATE DATABASE、CREARE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE VIEW、CREATE TABLE、CREATE RULE、BACKUP DATABASE、BACKUP LOG

SELECT、DELETE、INSERT、 UPDATE、REFERENCS

視圖

過程

EXECUTE、SYNONYM

表1-1 常用權限

對于權限的操作有:授予權限、撤銷權限、拒絕權限。通過名字我們都不難了解每個操作的意義。接下來,我們具體看看每個權限的具體操作。

授予權限

Grant

{all|statement[權限名]}

To security_account[使用者名]

撤銷權限

Revoke{all|statement[權限名]}

From security_account[使用者名]

拒絕權限

Deny {all|statement[權限名]}

To security_account[使用者名]

* 拒絕權限隻是在不收回使用者權限前提下,禁止使用者通路資料庫中某對象的的一個操作。

END

資料庫|權限管理