收回語句權限的語法形式是什么
收回語句權限的語法形式為:REVOKE{ALL|statement[,。
n]}FROMsecurity_account[,。
。n]收回對象權限的語法形式為:REVOKE[GRANTOPTIONFOR]{ALL[PRIVILEGES]|permission[,。
。
n]}{[(column[,。
。n])]ON{table|view}|ON{table|view}[(column[,。
n])]|ON{stored_procedure|extended_procedure}|ON{user_defined_function}}{TO|FROM}security_account[,。 。
。n][CASCADE][AS{group|role}]數據控制語言系統存儲過程編輯系統存儲過程是SQLServer系統創建的存儲過程,它的目的在于能夠方便地從系統表中查詢信息,或者完成與更新數據庫表相關的管理任務或其它的系統管理任務。
否定語句權限的語法形式是什么
否定語句權限的語法形式為:DENY{ALL|statement[,。
n]}TOsecurity_account[,。n]否定對象權限的語法形式為:DENY{ALL[PRIVILEGES]|permission[,。
n]}{[(column[,。n])]ON{table|view}|ON{table|view}[(column[,。
n])]|ON{stored_procedure|extended_procedure}|ON{user_defined_function}}TOsecurity_account[,。n][CASCADE]數據控制語言REVOKE語句REVOKE語句是與GRANT語句相反的語句,它能夠將以前在當前數據庫內的用戶或者角色上授予或拒絕的權限刪除,但是該語句并不影響用戶或者角色從其他角色中作為成員繼承過來的權限。
sql語句權限問題
用戶表--用戶編號,用戶名稱。。。以及其他用戶信息
角色表--角色編號,角色名稱。。。以及其他角色信息
權限表--權限編號,權限名稱。。。以及其他全縣信息
另外缺少兩張表,用戶、角色、權限三者的關系要通過下面兩張表體現
用戶角色表--用戶編號,角色編號,啟用狀態
角色權限表--角色編號,權限編號,啟用狀態
SELECT 用戶表.用戶名稱,角色表.角色名稱,權限表.權限名稱
FROM 用戶表
LEFT JOIN 用戶角色表 ON 用戶表.用戶編號=用戶角色表.用戶編號
LEFT JOIN 角色表 ON 用戶角色表.角色編號=角色表.角色編號 AND 用戶角色表.啟用狀態=1
LEFT JOIN 角色權限表 ON 角色表.角色編號=角色權限表.角色編號 AND 角色權限表.啟用狀態=1
LEFT JOIN 權限表 ON 角色權限表.權限編號=權限表.權限編號
區分Grant,Deny和Revoke
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