第 6 章 使用者權限
本章提要 資料庫的使用者 資料庫的角色 存取權限 權限設定的考量
資料庫的使用者 特殊的資料庫使用者 建立與管理使用者 使用系統預存程序
特殊的資料庫使用者 dbo 是資料庫擁有者 (database owner) 的意思, 建立資料庫的人理應就是資料庫擁有者, 因此任何人在建立資料庫時, 他就自然地成為該資料庫的 dbo 。 還有一個特別的使用者, 那就是 guest, 它和 Windows 2000/NT 中的 guest 帳戶相似, 都是提供未經授權的使用者某種程度的存取權限。
建立使用者
建立使用者
修改使用者
使用系統預存程序 可用 sp_grantdbaccess 或 sp_adduser 系統預存程式來建立資料庫使用者:
使用系統預存程序 在訂單資料庫中建立 guest 使用者物件, 只需以一個 guest 做為參數就可以了:
使用系統預存程序 用來刪除使用者的系統預存程序有 2 個, 分別是:
使用系統預存程序 顯示使用者資訊的預存程序:
使用系統預存程序 未指定使用者名稱的話, 則會顯示資料庫中所有使用者的資訊, 如下圖所示:
角色的種類 內建角色 自訂角色 應用程式角色
檢視角色
檢視角色
新增角色
建立角色 建立角色的系統預存程式是 sp_addrole, 其用法為:
建立角色 若要建立的是應用程式角色, 則需用另一個系統預存程序 sp_addaprole:
設定角色成員 要將使用者加入角色之中, 可使用 sp_addrolemember:
查詢角色資訊 若要查看角色的資料, 可使用 sp_helprole 和 sp_helprolemember :
查詢角色資訊
查詢角色資訊
查詢角色資訊
移除角色 若要將角色移除的話, 可使用下列的預存程式: 要移除角色成員, 可用 sp_droprolemember :
存取權限的種類 SQL 敘述權限 物件權限
可設定存取權限的 SQL 敘述 CREATE DATABASE CREATE TABLE CREATE DEFAULT CREATE RULE CREATE VIEW BACKUP DATABASE BACKUP LOG
權限的設定狀態 允許 (grant)
權限的設定狀態 禁止 (deny)
設定資料庫的存取權限
設定物件的存取權限
設定物件的存取權限
設定物件的存取權限
設定物件的存取權限
設定物件的存取權限
設定物件的存取權限
設定物件的存取權限
以 SQL 敘述設定存取權限 GRANT 敘述
以 SQL 敘述設定存取權限 GRANT 敘述
以 SQL 敘述設定存取權限 GRANT 敘述
以 SQL 敘述設定存取權限 若 Goodman 不具有 Customers 其它欄位的存取權限:
以 SQL 敘述設定存取權限
以 SQL 敘述設定存取權限 DENY 敘述
以 SQL 敘述設定存取權限 REVOKE 敘述
權限設定的考量 擁有權鏈 以檢視表和預存程序限制存取範圍 加密處理
簡單的單擁有者擁有權鏈
多擁有者擁有權鏈
以檢視表和預存程序 限制存取範圍 使用 GRANT 等敘述時, 可設定個別欄位的存取權限, 當資料表中的各欄位有不同的機密性時, 就可利用此法將不同的欄位設定不同的權限給使用者。
利用檢視表來限制存取範圍
SQL Server 可加密的資料 登入帳戶和應用程式角色的登入密碼。 在用戶端和伺服器間透過網路傳送的任何資料。 觸發程序的定義。
網路傳輸的加密 執行開始 / 程式集 / Microsoft SQL Server / 用戶端網路公用程式命令:
檢視表和預存程序的加密
檢視表和預存程序的加密
檢視表和預存程序的加密
檢視表和預存程序的加密 用 SQL 語法建立檢視表或預存程序的話, 只需在建立的敘述中加上 WITH ENCRYPTION 參數即可:
檢視表和預存程序的加密 若是用 ALTER PROCEDURE 或 ALTER VIEW 敘述將現存的檢視表和預存程序加密, 也是加上 WITH ENCRYPTION 參數即可: