1 回答

TA貢獻1951條經驗 獲得超3個贊
GRANT:
在安全系統中創建項目,使當前數據庫中的用戶得以處理當前數據庫中的數據或執行特定的 Transact-SQL 語句。
1 例子:授予語句權限
下面的示例給用戶 Mary 和 John 授予多個語句權限。
GRANT CREATE DATABASE, CREATE TABLE TO Mary, John
授予全部語句權限給用戶Rose
GRANT ALL to Rose
2 例子:授予對象權限
GRANT SELECT ON authors TO public
GRANT INSERT, UPDATE, DELETE ON authors TO Mary, John, Tom
DENY:
在安全系統中創建一項,以拒絕給當前數據庫內的安全帳戶授予權限并防止安全帳戶通過其組或角色成員資格繼承權限。
1 例子:拒絕語句權限
下例對多個用戶拒絕多個語句權限。用戶不能使用 CREATE DATABASE 和 CREATE TABLE 語句
DENY CREATE DATABASE, CREATE TABLE TO Mary, John
對用戶Rose拒絕全部語句權限
DENY ALL to Rose
2 例子:拒絕對象權限
DENY INSERT, UPDATE, DELETE ON authors TO Mary, John, Tom
REVOKE:
刪除以前在當前數據庫內的用戶上授予或拒絕的權限。
1 廢除類似于拒絕,但是,廢除權限是刪除已授予的權限,并不妨礙用戶、組或角色從更高級別繼承已授予的權限。因此,如果廢除用戶查看表的權限,不一定能防止用戶查看該表,因為已將查看該表的權限授予了用戶所屬的角色。
2 角色是權限的一個集合,可以指派給用戶或其它角色。這樣只對角色進行權限設置便可以實現對多個用戶權限的設置
3 舉例:DENY與REVOKE區別
例如,從 HumanResources 角色中刪除 Employees 表上的 SELECT 訪問權限將廢除該權限,從而使 HumanResources 不能再使用該表。如果 HumanResources 是 Administration 角色的成員。如果以后將 Employees 上的 SELECT 權限授予了 Administration,則 HumanResources 的成員可以通過 Administration 中的成員資格看到該表。但是,如果對 HumanResources 拒絕SELECT權限,則即使以后向 Administration 授予權限,HumanResources 也不會繼承該權限
4 例子: 廢除授予用戶帳戶的語句權限
下例廢除已授予用戶 Joe 的 CREATE TABLE 權限。它刪除了允許 Joe 創建表的權限。不過,如果已將 CREATE TABLE 權限授予給了包含 Joe 的任何角色,那么 Joe 仍可創建表。
REVOKE CREATE TABLE FROM Joe
5 例子: 廢除授予多個用戶帳戶的多個權限
下例廢除授予多個用戶的多個語句權限。
REVOKE CREATE TABLE, CREATE INDEX FROM Mary, John
6 例子: 廢除拒絕的權限
用戶 Mary 是 Budget 角色的成員,已給該角色授予了對 Budget_Data 表的 SELECT 權限。已對 Mary 使用 DENY 語句以防止 Mary 通過授予 Budget 角色的權限訪問 Budget_Data 表
下例刪除對 Mary 拒絕的權限,并通過適用于 Budget 角色的 SELECT 權限,允許 Mary 對該表使用 SELECT 語句。
REVOKE SELECT ON Budget_Data TO Mary
- 1 回答
- 0 關注
- 647 瀏覽
添加回答
舉報