如何為sql server中建立的角色分配許可權

2021-12-18 21:10:54 字數 5019 閱讀 6978

1樓:

角色是一個強大的工具,使您得以將使用者集中到一個單元中,然後對該單元應用許可權。對一個角色授予、拒絕或廢除的許可權也適用於該角色的任何成員。可以建立一個角色來代表單位中一類工作人員所執行的工作,然後給這個角色授予適當的許可權。

當工作人員開始工作時,只須將他們新增為該角色成員,當他們離開工作時,將他們從該角色中刪除。而不必在每個人接受或離開工作時,反覆授予、拒絕和廢除其許可權。許可權在使用者成為角色成員時自動生效。

microsoft® windows nt® 和 windows® 2000 組的使用方式與角色很相似。有關更多資訊,請參見組。

如果根據工作職能定義了一系列角色,並給每個角色指派了適合這項工作的許可權,則很容易在資料庫中管理這些許可權。之後,不用管理各個使用者的許可權,而只須在角色之間移動使用者即可。如果工作職能發生改變,則只須更改一次角色的許可權,並使更改自動應用於角色的所有成員,操作比較容易。

在 microsoft® sql server™ 2000 和 sql server 7.0 版中,使用者可屬於多個角色。

以下指令碼說明登入、使用者和角色的新增,併為角色授予許可權。

use master

go sp_grantlogin 'netdomain\john'

go sp_defaultdb 'netdomain\john', 'courses'

go sp_grantlogin 'netdomain\sarah'

go sp_defaultdb 'netdomain\sarah', 'courses'

go sp_grantlogin 'netdomain\betty'

go sp_defaultdb 'netdomain\betty', 'courses'

go sp_grantlogin 'netdomain\ralph'

go sp_defaultdb 'netdomain\ralph', 'courses'

go sp_grantlogin 'netdomain\diane'

go sp_defaultdb 'netdomain\diane', 'courses'

go use courses

go sp_grantdbaccess 'netdomain\john'

go sp_grantdbaccess 'netdomain\sarah'

go sp_grantdbaccess 'netdomain\betty'

go sp_grantdbaccess 'netdomain\ralph'

go sp_grantdbaccess 'netdomain\diane'

go sp_addrole 'professor'

go sp_addrole 'student'

go sp_addrolemember 'professor', 'netdomain\john'

go sp_addrolemember 'professor', 'netdomain\sarah'

go sp_addrolemember 'professor', 'netdomain\diane'

go sp_addrolemember 'student', 'netdomain\betty'

go sp_addrolemember 'student', 'netdomain\ralph'

go sp_addrolemember 'student', 'netdomain\diane'

go grant select on studentgradeview to student

go grant select, update on professorgradeview to professor

go 該指令碼給 john 和 sarah 教授提供了更新學生成績的許可權,而學生 betty 和 ralph 只能選擇他們自己的成績。diane 因同時教兩個班,所以新增到兩個角色中。professorgradeview 檢視應將教授限制在自己班學生的行上,而 studentgradeview 應限制學生只能選擇自己的成績。

sql server 2000 和 sql server 7.0 版在安裝過程中定義幾個固定角色。可以在這些角色中新增使用者以獲得相關的管理許可權。下面是伺服器範圍內的角色。

固定伺服器角色

描述 sysadmin

可以在 sql server 中執行任何活動。

serveradmin

可以設定伺服器範圍的配置選項,關閉伺服器。

setupadmin

可以管理連結伺服器和啟動過程。

securityadmin

可以管理登入和 create database 許可權,還可以讀取錯誤日誌和更改密碼。

processadmin

可以管理在 sql server 中執行的程序。

dbcreator

可以建立、更改和除去資料庫。

diskadmin

可以管理磁碟檔案。

bulkadmin

可以執行 bulk insert 語句。

可以從 sp_helpsrvrole 獲得固定伺服器角色的列表,可以從 sp_srvrolepermission 獲得每個角色的特定許可權。

每個資料庫都有一系列固定資料庫角色。雖然每個資料庫中都存在名稱相同的角色,但各個角色的作用域只是在特定的資料庫內。例如,如果 database1 和 database2 中都有叫 userx 的使用者 id,將 database1 中的 userx 新增到 database1 的 db_owner 固定資料庫角色中,對 database2 中的 userx 是否是 database2 的 db_owner 角色成員沒有任何影響。

固定資料庫角色

描述 db_owner

在資料庫中有全部許可權。

db_accessadmin

可以新增或刪除使用者 id。

db_securityadmin

可以管理全部許可權、物件所有權、角色和角色成員資格。

db_ddladmin

可以發出 all ddl,但不能發出 grant、revoke 或 deny 語句。

db_backupoperator

可以發出 dbcc、checkpoint 和 backup 語句。

db_datareader

可以選擇資料庫內任何使用者表中的所有資料。

db_datawriter

可以更改資料庫內任何使用者表中的所有資料。

db_denydatareader

不能選擇資料庫內任何使用者表中的任何資料。

db_denydatawriter

不能更改資料庫內任何使用者表中的任何資料。

可以從 sp_helpdbfixedrole 獲得固定資料庫角色的列表,可以從 sp_dbfixedrolepermission 獲得每個角色的特定許可權。

資料庫中的每個使用者都屬於 public 資料庫角色。如果想讓資料庫中的每個使用者都能有某個特定的許可權,則將該許可權指派給 public 角色。如果沒有給使用者專門授予對某個物件的許可權,他們就使用指派給 public 角色的許可權。

2樓:糖糖寳寳

1、為角色賦予jobs表的所有許可權

grant all on jobs to newrole2、為角色賦予sales表的查、改許可權

grant select,update on sales to newrole

臨時表可以被任何使用者在任何資料庫下建立,而不需要授予任何許可權。

本地臨時表只能被建立它的會話訪問。全域性臨時表可以被所有會話訪問和修改,而不需要授權。

sql server 建好了,如何建立使用者以及賦予所有許可權?

3樓:du瓶邪

1. 首先在 sql server 伺服器級別,建立登陸帳戶(create login)

--建立登陸帳戶(create login)

create login dba with password='abcd1234@', default_database=mydb

登陸帳戶名為:「dba」,登陸密碼:abcd1234@」,預設連線到的資料庫:

「mydb」。 這時候,dba 帳戶就可以連線到 sql server 伺服器上了。但是此時還不能 訪問資料庫中的物件(嚴格的說,此時 dba 帳戶預設是 guest 資料庫使用者身份, 可以訪問 guest 能夠訪問的資料庫物件)。

要使 dba 帳戶能夠在 mydb 資料庫中訪問自己需要的物件, 需要在資料庫 mydb 中建立一個「資料庫使用者」,賦予這個「資料庫使用者」 某些訪問許可權,並且把登陸帳戶「dba」 和這個「資料庫使用者」 對映起來。 習慣上,「資料庫使用者」 的名字和 「登陸帳戶」的名字相同,即:「dba」。

建立「資料庫使用者」和建立對映關係只需要一步即可完成:

2. 建立資料庫使用者(create user):

--為登陸賬戶建立資料庫使用者(create user),在mydb資料庫中的security中的user下可以找到新建立的dba

create user dba for login dba with default_schema=dbo

並指定資料庫使用者「dba」 的預設 schema 是「dbo」。這意味著 使用者「dba」 在執行「select * from t」,實際上執行的是 「select * from dbo.t」。

3. 通過加入資料庫角色,賦予資料庫使用者「dba」許可權:

--通過加入資料庫角色,賦予資料庫使用者「db_owner」許可權

exec sp_addrolemember 'db_owner', 'dba'

此時,dba 就可以全權管理資料庫 mydb 中的物件了。

如果想讓 sql server 登陸帳戶「dba」訪問多個資料庫,比如 mydb2。 可以讓 sa 執行下面的語句:

--讓 sql server 登陸帳戶「dba」訪問多個資料庫

use mydb2

gocreate user dba for login dba with default_schema=dbo

goexec sp_addrolemember 'db_owner', 'dba'

go此時,dba 就可以有兩個資料庫 mydb, mydb2 的管理許可權了!

SQL server如何建立新資料來源

mdf就是sql server的資料庫檔案呀 新增odbc,最後一個就是sql server,按想到連線就得了 ps 你是不是要附加這個資料庫上去?開啟企業管理器 資料庫 附加資料庫 是不是用某個程式語言連線資料庫阿 如果odbc裡沒有那你依然開啟odbc,然後選中右側不是有新增選項嗎,你去那裡新增...

如何使用sqlserver2019建立資料庫

1 開啟企業管理器 2 選擇microsoft sql servers sql server組 local windows nt 資料庫 3 右鍵 新建資料庫 4 寫入資料庫名,點確定就新建一個空的資料庫了 看看這個文件就清楚了!右鍵資料庫,點新建資料庫就可以啦 alter table 通過更改 新...

如何在sqlserver建立新使用者並關聯相應的資料庫

sqlserver 一 操作步驟首先進入資料庫級別的 安全性 登入名 新建登入名 圖1 新建登入名 2.在 常規 選項卡中,如下圖所示,建立登陸名,並設定預設的資料庫。圖2 設定選項 3.在 使用者對映 選項卡中,如下圖所示,勾選需要設定的資料庫,並設定 架構 點選 確認 按鈕,完成建立使用者的操作...