1. 首先在 SQL Server 服務器級別,建立登錄賬戶(create login)數據庫
create login system_dbowner with password='usercode1', default_database=訂單數據庫
登錄賬戶名爲:「system_dbowner」,登錄密碼:"usercode1」,默認鏈接到的數據庫:「訂單數據庫」。服務器
默認鏈接到的數據庫:「訂單數據庫」。 這時候,system_dbowner 賬戶就能夠鏈接到 SQL Server 服務器上了。可是此時還不能 訪問數據庫中的對象(嚴格的說,此時system_dbowner 賬戶默認是 guest 數據庫用戶身份, 能夠訪問 guest 可以訪問的數據庫對象)。要使 system_dbowner 賬戶可以在 「訂單數據庫」中訪問本身須要的對象, 須要在數據庫 「訂單數據庫」 中創建一個「數據庫用戶」,賦予這個「數據庫用戶」 某些訪問權限,而且把登錄賬戶「system_dbowner」 和這個「數據庫用戶」 映射起來。 習慣上,「數據庫用戶」 的名字和 「登錄賬戶」的名字相同,即:「system_dbowner」。 建立「數據庫用戶」和創建映射關係只須要一步便可完成。spa
2. 建立數據庫用戶(create user):code
create user system_dbowner for login system_dbowner with default_schema=dbo
並指定數據庫用戶「system_dbowner」 的默認 schema 是「訂單數據庫」。對象
這意味着 用戶「system_dbowner」 在執行「select * from t」,實際上執行的是 「select * from 訂單數據庫.t」。blog
3. 經過加入數據庫角色,賦予數據庫用戶「dba」權限:it
exec sp_addrolemember 'db_owner', 'system_dbowner'
此時,system_dbowner就能夠全權管理數據庫「訂單數據庫」 中的對象了。class
若是想讓 SQL Server 登錄賬戶「system_dbowner」訪問多個數據庫,好比 mydb2。 可讓 sa 執行下面的語句:
--讓 SQL Server 登錄賬戶「dba」訪問多個數據庫登錄
use mydb2 go create user system_dbowner for login system_dbowner with default_schema=dbo go exec sp_addrolemember 'db_owner', 'system_dbowner' go
此時,dba 就能夠有兩個數據庫 mydb, mydb2 的管理權限了!date
4.受權
(1)授予大權限,除select等(system_daowner是角色)
grant all to system_dbowner;
(2)授予對整個數據庫的查詢、插入、刪除、更新權限(此時不含有on關鍵字)
grant select,update,insert,delete to system_dbowner
(3)授予對數據庫中的某些表格的查詢、插入、刪除、更新權限(此時含有on關鍵字)
grant select,update,insert,delete on 訂單 to system_dbowner
(4)回收權限
revoke all to system_dbowner revoke select,update,insert,delete to system_dbowner
(5)刪除角色
drop user system_dbowner
(6)刪除登陸名
drop login system_dbowner