SQL_server用戶、角色建立,權限授予

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
相關文章
相關標籤/搜索