




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫安全及訪問控制1 SQL ServerSQL Server 第第16章章數(shù)據(jù)庫安全及訪問控制數(shù)據(jù)庫安全及訪問控制 數(shù)據(jù)庫安全及訪問控制2 16.1 SQL Server安全認(rèn)證模式與設(shè)置安全認(rèn)證模式與設(shè)置 16.2 SQL Server登錄賬戶的管理登錄賬戶的管理 16.3 數(shù)據(jù)庫訪問權(quán)限的建立與刪除數(shù)據(jù)庫訪問權(quán)限的建立與刪除 16.4 角色管理角色管理 16.5 數(shù)據(jù)庫權(quán)限管理數(shù)據(jù)庫權(quán)限管理 第第16章章數(shù)據(jù)庫安全及訪問控制數(shù)據(jù)庫安全及訪問控制 數(shù)據(jù)庫安全及訪問控制3 16.1 SQL Server16.1 SQL Server安全認(rèn)證模式與設(shè)安全認(rèn)證模式與設(shè) 置置 16.1.1 16
2、.1.1 用戶安全認(rèn)證模式用戶安全認(rèn)證模式 16.1.2 16.1.2 設(shè)置安全認(rèn)證模式設(shè)置安全認(rèn)證模式 數(shù)據(jù)庫安全及訪問控制4 16.1 SQL Server16.1 SQL Server安全認(rèn)證模式與設(shè)安全認(rèn)證模式與設(shè) 置置 SQL ServerSQL Server作為作為DBMSDBMS,采用了,采用了三個層次三個層次的安全控的安全控 制策略:制策略: 1 1、用戶首先登錄到數(shù)據(jù)庫服務(wù)器上、用戶首先登錄到數(shù)據(jù)庫服務(wù)器上( (是是服務(wù)器合法服務(wù)器合法 用戶用戶) ) 2. 2. 然后使服務(wù)器用戶(然后使服務(wù)器用戶(loginlogin)成為某個)成為某個數(shù)據(jù)庫的數(shù)據(jù)庫的 合法用戶合法用戶,
3、從而能夠訪問數(shù)據(jù)庫。,從而能夠訪問數(shù)據(jù)庫。 3. 3. 讓數(shù)據(jù)庫用戶在數(shù)據(jù)庫中具有一定的讓數(shù)據(jù)庫用戶在數(shù)據(jù)庫中具有一定的權(quán)限權(quán)限( (數(shù)據(jù)數(shù)據(jù) 操作權(quán)、創(chuàng)建對象權(quán)操作權(quán)、創(chuàng)建對象權(quán)等等) ) 數(shù)據(jù)庫安全及訪問控制5 16.1.1 16.1.1 用戶安全認(rèn)證模式用戶安全認(rèn)證模式 安全帳戶認(rèn)證安全帳戶認(rèn)證是用來確認(rèn)登錄是用來確認(rèn)登錄SQL ServerSQL Server的用戶的登的用戶的登 錄帳號和密碼的正確性,由此來驗證其是否具有連錄帳號和密碼的正確性,由此來驗證其是否具有連 接接SQL ServerSQL Server的權(quán)限。的權(quán)限。 SQL Server SQL Server 提供了兩種確
4、認(rèn)用戶的認(rèn)證模式:提供了兩種確認(rèn)用戶的認(rèn)證模式: (一)(一)Windows NTWindows NT認(rèn)證模式。認(rèn)證模式。 (二)混合認(rèn)證模式。(二)混合認(rèn)證模式。 數(shù)據(jù)庫安全及訪問控制6 (一)(一)Windows NTWindows NT認(rèn)證模式認(rèn)證模式 SQL ServerSQL Server數(shù)據(jù)庫系統(tǒng)通常運行在數(shù)據(jù)庫系統(tǒng)通常運行在Windows NTWindows NT服務(wù)器平臺上,服務(wù)器平臺上, 而而NTNT作為網(wǎng)絡(luò)操作系統(tǒng),本身就具備管理登錄、驗證用戶合作為網(wǎng)絡(luò)操作系統(tǒng),本身就具備管理登錄、驗證用戶合 法性的能力,因此法性的能力,因此Windows NTWindows NT認(rèn)證模式
5、正是利用了這一用戶認(rèn)證模式正是利用了這一用戶 安全性和帳號管理的機制,允許安全性和帳號管理的機制,允許SQL ServerSQL Server也可以使用也可以使用NTNT的的 用戶名和口令。在這種模式下,用戶只需要通過用戶名和口令。在這種模式下,用戶只需要通過Windows NTWindows NT 的認(rèn)證,就可以連接到的認(rèn)證,就可以連接到SQL ServerSQL Server,而,而SQL ServerSQL Server本身也就本身也就 不需要管理一套登錄數(shù)據(jù)。不需要管理一套登錄數(shù)據(jù)。 需要注意的是:登錄前必須將需要注意的是:登錄前必須將Windows NTWindows NT賬號加入到
6、賬號加入到SQL Server SQL Server 中,中, 才能采用才能采用Windows NTWindows NT賬號登錄到賬號登錄到SQL ServerSQL Server上。上。 數(shù)據(jù)庫安全及訪問控制7 (二)混合認(rèn)證模式(二)混合認(rèn)證模式 混合認(rèn)證模式允許用戶使用混合認(rèn)證模式允許用戶使用Windows NTWindows NT安全性或安全性或SQL SQL ServerServer安全性連接到安全性連接到SQL ServerSQL Server。在這種方式下,對于。在這種方式下,對于 可信連接用戶的連接請求,系統(tǒng)將采用可信連接用戶的連接請求,系統(tǒng)將采用Windwos Windwos
7、 NT/2003NT/2003認(rèn)證模式,而對于非可信連接用戶則采用認(rèn)證模式,而對于非可信連接用戶則采用SQL SQL ServerServer認(rèn)證模式。采用認(rèn)證模式。采用SQL ServerSQL Server模式認(rèn)證時,系統(tǒng)檢模式認(rèn)證時,系統(tǒng)檢 查是否已經(jīng)建立了該用戶的登錄標(biāo)識以及二者的口令是查是否已經(jīng)建立了該用戶的登錄標(biāo)識以及二者的口令是 否相同。通過認(rèn)證后,用戶應(yīng)用程序才可連接到否相同。通過認(rèn)證后,用戶應(yīng)用程序才可連接到SQL SQL ServerServer服務(wù)器,否則系統(tǒng)將拒絕用戶的連接請求。服務(wù)器,否則系統(tǒng)將拒絕用戶的連接請求。 數(shù)據(jù)庫安全及訪問控制8 客戶連接請求客戶連接請求 認(rèn)
8、證模式認(rèn)證模式 Windows認(rèn)證模式認(rèn)證模式混合認(rèn)證模式混合認(rèn)證模式 SQL Server登錄標(biāo)識登錄標(biāo)識 登錄標(biāo)識和口令正確?登錄標(biāo)識和口令正確?有效的有效的NT/2003用戶帳戶?用戶帳戶? SQL Server拒絕用戶連接拒絕用戶連接 SQL Server接受用戶連接接受用戶連接 N NN Y YY SQL Server對登錄標(biāo)識的認(rèn)證過程可用下圖表示:對登錄標(biāo)識的認(rèn)證過程可用下圖表示: 數(shù)據(jù)庫安全及訪問控制9 無論采用以上哪種認(rèn)證模式,在用戶連接到無論采用以上哪種認(rèn)證模式,在用戶連接到SQL ServerSQL Server 后,他們的操作完全相同。比較起來,兩種認(rèn)證模式各后,他們的
9、操作完全相同。比較起來,兩種認(rèn)證模式各 有優(yōu)劣:有優(yōu)劣: (1 1)WindowsWindows認(rèn)證更為安全。認(rèn)證更為安全。 (2 2)SQL ServerSQL Server認(rèn)證管理較為簡單,它允許應(yīng)用程序認(rèn)證管理較為簡單,它允許應(yīng)用程序 的所有用戶使用同一登錄標(biāo)識。的所有用戶使用同一登錄標(biāo)識。 為了便于用戶帳戶的集中管理,在為了便于用戶帳戶的集中管理,在Windows NT/2003Windows NT/2003平平 臺下,最好選用臺下,最好選用WindowsWindows認(rèn)證模式。認(rèn)證模式。 數(shù)據(jù)庫安全及訪問控制10 16.1.2 16.1.2 設(shè)置安全認(rèn)證模式設(shè)置安全認(rèn)證模式 其主要過
10、程如下:其主要過程如下: 1. 1. 打開打開SSMSSSMS,用右鍵單擊要設(shè)置認(rèn)證模式的服務(wù)器,從快捷菜,用右鍵單擊要設(shè)置認(rèn)證模式的服務(wù)器,從快捷菜 單中選擇單中選擇“屬性屬性(propertiesproperties)”選項,則出現(xiàn)選項,則出現(xiàn)SQL ServerSQL Server屬屬 性對話框。性對話框。 2. 2. 在在SQL ServerSQL Server屬性對話框中選擇安全性選項。屬性對話框中選擇安全性選項。 3. 3. 在安全性選項欄中,身份驗證中可以選擇要設(shè)置的認(rèn)證模式,在安全性選項欄中,身份驗證中可以選擇要設(shè)置的認(rèn)證模式, 同時審核級別中還可以選擇跟蹤記錄用戶登錄時的哪種
11、信息,同時審核級別中還可以選擇跟蹤記錄用戶登錄時的哪種信息, 例如登錄成功或登錄失敗的信息等。例如登錄成功或登錄失敗的信息等。 4. 4. 在啟動服務(wù)帳戶中設(shè)置當(dāng)啟動并運行在啟動服務(wù)帳戶中設(shè)置當(dāng)啟動并運行SQL ServerSQL Server時默認(rèn)的登時默認(rèn)的登 錄者中哪一位用戶。錄者中哪一位用戶。 數(shù)據(jù)庫安全及訪問控制11 16.2 SQL Server16.2 SQL Server登錄賬戶的管登錄賬戶的管 理理 16.2.1 Windows NT16.2.1 Windows NT登錄帳戶建立與刪除登錄帳戶建立與刪除 16.2.2 SQL Server16.2.2 SQL Server登錄
12、賬戶建立與刪除登錄賬戶建立與刪除 數(shù)據(jù)庫安全及訪問控制12 系統(tǒng)內(nèi)置已有的登錄帳號系統(tǒng)內(nèi)置已有的登錄帳號: : SQL ServerSQL Server有三個默認(rèn)(內(nèi)置)的用戶登錄帳號:即有三個默認(rèn)(內(nèi)置)的用戶登錄帳號:即 sasa、 builtinadministratorsbuiltinadministrators和和guestguest。 SaSa:SQL ServerSQL Server驗證模式的系統(tǒng)管理員帳號;驗證模式的系統(tǒng)管理員帳號; builtinadministratorsbuiltinadministrators: 是一個是一個windowswindows組帳號,組帳號,
13、表示所有表示所有windowswindows系統(tǒng)管理員(系統(tǒng)管理員(AdministratorAdministrator)組中)組中 的用戶都可以登錄到的用戶都可以登錄到SQL Server;SQL Server; GuestGuest: :是來賓帳號。是來賓帳號。 數(shù)據(jù)庫安全及訪問控制13 16.2.1 Windows NT16.2.1 Windows NT登錄帳戶建立與刪除登錄帳戶建立與刪除 1 1、建立其他新的建立其他新的Windows NT/2003Windows NT/2003賬戶賬戶 操作步驟如下:操作步驟如下: 以以AdministratorsAdministrators登錄到登
14、錄到Windows 2003Windows 2003; 選擇選擇“開始開始”“設(shè)置設(shè)置” “控制面板控制面板” “管理工具管理工具” “計算機管理計算機管理”; 在計算機管理窗口,選擇在計算機管理窗口,選擇“本地用戶和組本地用戶和組”,單擊右鍵,單擊右鍵, 在快捷菜單上單擊在快捷菜單上單擊“新用戶新用戶”,進入如下圖界面;,進入如下圖界面; 在在“新用戶新用戶”對話框中輸入新用戶名和密碼(這里用戶對話框中輸入新用戶名和密碼(這里用戶 名是名是mengmeng,密碼是,密碼是11111111);); 單擊單擊【確定確定】按鈕,一個新的按鈕,一個新的Windows NT/2003Windows N
15、T/2003賬戶賬戶 建立成功。建立成功。 數(shù)據(jù)庫安全及訪問控制14 數(shù)據(jù)庫安全及訪問控制15 2.將將Windows NT/2003賬戶加入到賬戶加入到SQL Server中中 方法一:使用系統(tǒng)存儲過程方法一:使用系統(tǒng)存儲過程 在在SQL ServerSQL Server中,授予中,授予Windows NT/2003Windows NT/2003用戶或用戶組連接用戶或用戶組連接SQL SQL ServerServer服務(wù)器的權(quán)限。其語法格式為:服務(wù)器的權(quán)限。其語法格式為: sp_grantlogin loginame=loginsp_grantlogin loginame=login 其中,
16、其中, loginlogin是是Windows NT/2003Windows NT/2003用戶或用戶組名稱,其用戶或用戶組名稱,其 格式為格式為“域域 用戶名稱用戶名稱” ” 。對于本地用戶或組,則域名即為本地對于本地用戶或組,則域名即為本地 計算機名,其格式為計算機名,其格式為“計算機名計算機名 用戶名稱用戶名稱”。 方法二:使用方法二:使用 數(shù)據(jù)庫安全及訪問控制16 例:將新建的例:將新建的Windows NTWindows NT賬戶賬戶mengmeng用系統(tǒng)存儲過程添加到用系統(tǒng)存儲過程添加到 SQL ServerSQL Server系統(tǒng)中。系統(tǒng)中。 EXEC sp_grantlogin
17、 ZUFE-MXHmengEXEC sp_grantlogin ZUFE-MXHmeng - ZUFE-MXH是計算機名,meng是Windows 2003用戶 例:將例:將Windows NTWindows NT賬戶賬戶dengdeng用方法添加到用方法添加到SQL ServerSQL Server 系統(tǒng)中系統(tǒng)中 。 數(shù)據(jù)庫安全及訪問控制17 3.用新建用新建Windows 2003用戶登錄用戶登錄SQL Server 如果想用新建如果想用新建Windows 2003用戶登錄用戶登錄SQL ServerSQL Server,首先,首先 將登錄的默認(rèn)數(shù)據(jù)庫選擇成用戶自己建立的數(shù)據(jù)庫(如果默將登
18、錄的默認(rèn)數(shù)據(jù)庫選擇成用戶自己建立的數(shù)據(jù)庫(如果默 認(rèn)數(shù)據(jù)庫是認(rèn)數(shù)據(jù)庫是mastermaster,新建用戶登錄權(quán)限限制不起作用)。,新建用戶登錄權(quán)限限制不起作用)。 在建立訪問該數(shù)據(jù)庫權(quán)限的基礎(chǔ)上,然后可以在在建立訪問該數(shù)據(jù)庫權(quán)限的基礎(chǔ)上,然后可以在 Windows 2003中選擇中選擇“開始開始”“”“關(guān)機關(guān)機”,注銷原來的賬戶,注銷原來的賬戶, 用新的賬戶(比如用新的賬戶(比如meng)登錄)登錄Windows 2003。登錄成功后,。登錄成功后, 啟動啟動SSMSSSMS就可以新的用戶自動進入就可以新的用戶自動進入SQL Server。 數(shù)據(jù)庫安全及訪問控制18 4.廢除廢除Windows
19、 NT用戶和用戶和SQL Server的連接的連接 系統(tǒng)存儲過程系統(tǒng)存儲過程sp_grantloginsp_grantlogin所添加的登錄標(biāo)識均存儲所添加的登錄標(biāo)識均存儲 在在SQL ServerSQL Server的的sysloginssyslogins系統(tǒng)表中。以系統(tǒng)管理員身份調(diào)系統(tǒng)表中。以系統(tǒng)管理員身份調(diào) 用系統(tǒng)存儲過程用系統(tǒng)存儲過程sp_revokeloginsp_revokelogin或從或從ssmsssms中能夠?qū)⑺鼈儚闹心軌驅(qū)⑺鼈儚?sysloginsyslogin系統(tǒng)表中刪除,這時在登錄窗口中被刪除的登錄標(biāo)系統(tǒng)表中刪除,這時在登錄窗口中被刪除的登錄標(biāo) 識也將不再存在(需要刷新
20、界面)。識也將不再存在(需要刷新界面)。 方法一:使用系統(tǒng)存儲過程方法一:使用系統(tǒng)存儲過程 語法格式:語法格式: sp_revokelogin loginame=loginsp_revokelogin loginame=login 參數(shù)說明:參數(shù)說明: loginlogin是待刪除的是待刪除的SQL ServerSQL Server服務(wù)器登錄標(biāo)識。服務(wù)器登錄標(biāo)識。 方法二:使用方法二:使用ssms 數(shù)據(jù)庫安全及訪問控制19 16.2.2 SQL Server16.2.2 SQL Server登錄賬戶建立與刪除登錄賬戶建立與刪除 在在Windows NT/2003Windows NT/2003環(huán)
21、境下,如果要使用環(huán)境下,如果要使用SQL SQL ServerServer登錄標(biāo)識登錄登錄標(biāo)識登錄SQL ServerSQL Server,首先應(yīng)將,首先應(yīng)將SQL SQL ServerServer的認(rèn)證模式設(shè)置為混合模式。設(shè)置成混合的認(rèn)證模式設(shè)置為混合模式。設(shè)置成混合 認(rèn)證模式后,可以使用系統(tǒng)存儲過程或認(rèn)證模式后,可以使用系統(tǒng)存儲過程或ssmsssms創(chuàng)建創(chuàng)建 SQL ServerSQL Server登錄標(biāo)識。登錄標(biāo)識。 數(shù)據(jù)庫安全及訪問控制20 1.創(chuàng)建創(chuàng)建SQL Server登錄標(biāo)識登錄標(biāo)識 方法一:使用系統(tǒng)存儲過程方法一:使用系統(tǒng)存儲過程 語法格式:語法格式: sp_addlogin
22、loginame=loginsp_addlogin loginame=login ,passwd=password,passwd=password ,defdb=database ,defdb=database ,deflanguage=language,deflanguage=language ,sid=sid ,sid=sid ,encryptopt=encryption_option,encryptopt=encryption_option 數(shù)據(jù)庫安全及訪問控制21 參數(shù)說明:參數(shù)說明: LoginLogin為注冊標(biāo)識或為注冊標(biāo)識或SQL ServerSQL Server用戶名,長度為用
23、戶名,長度為1 1到到128128個字符,其中可以包括個字符,其中可以包括 字母、符號和數(shù)字,但不能是空字符串,不能包含字母、符號和數(shù)字,但不能是空字符串,不能包含,不能與現(xiàn)有登錄標(biāo)識,不能與現(xiàn)有登錄標(biāo)識 同名;同名; PasswdPasswd為口令,默認(rèn)口令是為口令,默認(rèn)口令是NULLNULL(即不需要口令),用戶可以在任何時候使用;(即不需要口令),用戶可以在任何時候使用; DatabaseDatabase指定用戶在注冊時連接到的默認(rèn)數(shù)據(jù)庫,如果沒有指定默認(rèn)數(shù)據(jù)庫,指定用戶在注冊時連接到的默認(rèn)數(shù)據(jù)庫,如果沒有指定默認(rèn)數(shù)據(jù)庫, 則默認(rèn)數(shù)據(jù)庫是則默認(rèn)數(shù)據(jù)庫是mastermaster; sid
24、sid 是新建登錄標(biāo)識的安全標(biāo)識號,一般由系統(tǒng)自動建立。是新建登錄標(biāo)識的安全標(biāo)識號,一般由系統(tǒng)自動建立。 encryption_optionencryption_option說明登錄標(biāo)識口令是否需要加密存儲到系統(tǒng)表中,其數(shù)據(jù)說明登錄標(biāo)識口令是否需要加密存儲到系統(tǒng)表中,其數(shù)據(jù) 類型為類型為varchar(20),varchar(20),它有以下三種取值:它有以下三種取值: NULLNULL:默認(rèn)設(shè)置,口令加密存儲;:默認(rèn)設(shè)置,口令加密存儲; skip_encryptionskip_encryption:要求不要加密口令。:要求不要加密口令。 skip_encryption_oldskip_enc
25、ryption_old:所提供的口令被:所提供的口令被SQL ServerSQL Server前期版本加密,前期版本加密, 這種取值主要用于早期版本數(shù)據(jù)庫的升級。這種取值主要用于早期版本數(shù)據(jù)庫的升級。 languagelanguage說明用戶注冊到說明用戶注冊到SQL ServerSQL Server時使用的默認(rèn)語言代碼。時使用的默認(rèn)語言代碼。 數(shù)據(jù)庫安全及訪問控制22 例:創(chuàng)建例:創(chuàng)建SQL ServerSQL Server登錄賬戶登錄賬戶wangwang。 EXEC sp_addlogin loginame= wang, passwd=1234EXEC sp_addlogin logina
26、me= wang, passwd=1234 -新建登錄標(biāo)識新建登錄標(biāo)識wangwang EXEC sp_addlogin loginame= wang1, passwd=1234 , defdb=stu 方法二:使用方法二:使用ssmsssms select * from sys.syslogins 數(shù)據(jù)庫安全及訪問控制23 2用新建用新建SQL server登錄用戶登錄登錄用戶登錄SQL Server 首先設(shè)置安全認(rèn)證模式成混合模式,再將登錄的默認(rèn)數(shù)據(jù)庫選首先設(shè)置安全認(rèn)證模式成混合模式,再將登錄的默認(rèn)數(shù)據(jù)庫選 擇成用戶自己建立的數(shù)據(jù)庫,在建立該用戶訪問該數(shù)據(jù)庫權(quán)限擇成用戶自己建立的數(shù)據(jù)庫,在
27、建立該用戶訪問該數(shù)據(jù)庫權(quán)限 的基礎(chǔ)上,啟動的基礎(chǔ)上,啟動ssmsssms,先斷開原來的連接,再重新連接,然后,先斷開原來的連接,再重新連接,然后 選擇選擇SQL serverSQL server身份認(rèn)證,輸入新的用戶名和密碼即可用新用身份認(rèn)證,輸入新的用戶名和密碼即可用新用 戶身份訪問戶身份訪問SQL ServerSQL Server。 數(shù)據(jù)庫安全及訪問控制24 3 3、刪除、刪除SQL server SQL server 登錄標(biāo)識登錄標(biāo)識 如果管理員要禁止某個用戶連接如果管理員要禁止某個用戶連接SQL server SQL server 服務(wù)器,則可調(diào)用系服務(wù)器,則可調(diào)用系 統(tǒng)存儲過程統(tǒng)存儲
28、過程sp_droploginsp_droplogin或使用或使用ssmsssms將其登錄標(biāo)識從系統(tǒng)中刪除。將其登錄標(biāo)識從系統(tǒng)中刪除。 方法一:使用系統(tǒng)存儲過程方法一:使用系統(tǒng)存儲過程 語法格式:語法格式: sp_droplogin loginame = loginsp_droplogin loginame = login 參數(shù)說明:參數(shù)說明: loginlogin為存儲在為存儲在sysloginsyslogin系統(tǒng)表中的系統(tǒng)表中的SQL serverSQL server登錄標(biāo)識。刪除標(biāo)登錄標(biāo)識。刪除標(biāo) 識也就是刪除該用戶在識也就是刪除該用戶在sysloginsyslogin表中的對應(yīng)記錄。表中
29、的對應(yīng)記錄。 方法二:使用方法二:使用ssmsssms 刪除步驟類似上述刪除步驟類似上述WindowsWindows賬戶刪除。賬戶刪除。 數(shù)據(jù)庫安全及訪問控制25 16.3 數(shù)據(jù)庫訪問權(quán)限的建立與刪除數(shù)據(jù)庫訪問權(quán)限的建立與刪除 在數(shù)據(jù)庫中,一個用戶或工作組取得合法的登錄帳號,只 表明該帳號通過了Windows NT認(rèn)證或者SQL Server認(rèn)證,但 不能表明其可以對數(shù)據(jù)庫數(shù)據(jù)和數(shù)據(jù)庫對象進行某種或者某 些操作,只有當(dāng)他同時擁有了數(shù)據(jù)庫訪問權(quán)限后,才能夠訪 問數(shù)據(jù)庫。 16.3.1 建立用戶訪問數(shù)據(jù)庫的權(quán)限建立用戶訪問數(shù)據(jù)庫的權(quán)限 16.3.2 刪除用戶訪問數(shù)據(jù)庫的權(quán)限刪除用戶訪問數(shù)據(jù)庫的權(quán)限
30、 數(shù)據(jù)庫安全及訪問控制26 16.3.1建立用戶訪問數(shù)據(jù)庫的權(quán)限建立用戶訪問數(shù)據(jù)庫的權(quán)限 方法一:使用系統(tǒng)存儲過程方法一:使用系統(tǒng)存儲過程 語法格式:語法格式: sp_grantdbaccesssp_grantdbaccess loginame=login loginame=login ,name_in_db=name_in_db,name_in_db=name_in_db 將登錄賬號用戶或組添加到當(dāng)前數(shù)據(jù)庫,使該用戶能夠具有在當(dāng)前數(shù)據(jù)將登錄賬號用戶或組添加到當(dāng)前數(shù)據(jù)庫,使該用戶能夠具有在當(dāng)前數(shù)據(jù) 庫中執(zhí)行活動的權(quán)限。庫中執(zhí)行活動的權(quán)限。 參數(shù)說明:參數(shù)說明: loginlogin是登錄標(biāo)識名
31、稱或是登錄標(biāo)識名稱或Windows NT/2003Windows NT/2003用戶或用戶組名稱。用戶或用戶組名稱。 name_in_dbname_in_db是在數(shù)據(jù)庫中為是在數(shù)據(jù)庫中為loginlogin參數(shù)指定登錄標(biāo)識所創(chuàng)建的用參數(shù)指定登錄標(biāo)識所創(chuàng)建的用 戶名稱,它可以與登錄名稱不同,也可以相同。省略該參數(shù)時,所創(chuàng)建戶名稱,它可以與登錄名稱不同,也可以相同。省略該參數(shù)時,所創(chuàng)建 的數(shù)據(jù)庫用戶名稱與的數(shù)據(jù)庫用戶名稱與loginlogin相同。相同。 數(shù)據(jù)庫安全及訪問控制27 例:將上述建立的例:將上述建立的Windows Windows 用戶用戶“ZUFE-MXHmeng” ZUFE-MXH
32、meng” 添加到添加到“教教 學(xué)管理學(xué)管理”數(shù)據(jù)庫,并取名數(shù)據(jù)庫,并取名MANAGERMANAGER。 USE USE 教學(xué)管理教學(xué)管理 GOGO EXEC sp_grantdbaccess ZUFE-MXHmeng, MANAGEREXEC sp_grantdbaccess ZUFE-MXHmeng, MANAGER GOGO 注意:注意: sasa不能添加到數(shù)據(jù)庫中;不能添加到數(shù)據(jù)庫中; 只有只有sysadminsysadmin固定服務(wù)器角色、固定服務(wù)器角色、db_accessadmindb_accessadmin和和db_ownerdb_owner固固 定數(shù)據(jù)庫角色成員才能執(zhí)行定數(shù)據(jù)庫
33、角色成員才能執(zhí)行sp_grantdbaccesssp_grantdbaccess; 不能從用戶定義的事務(wù)中執(zhí)行不能從用戶定義的事務(wù)中執(zhí)行sp_grantdbaccesssp_grantdbaccess。 方法二:使用ssms 數(shù)據(jù)庫安全及訪問控制28 16.3.2 刪除用戶訪問數(shù)據(jù)庫的權(quán)限刪除用戶訪問數(shù)據(jù)庫的權(quán)限 方法一:使用系統(tǒng)存儲過程方法一:使用系統(tǒng)存儲過程 語法格式:語法格式: sp_revokedbaccesssp_revokedbaccess name_in_db=name_in_db name_in_db=name_in_db 參數(shù)說明:參數(shù)說明: name_in_dbname_i
34、n_db是在數(shù)據(jù)庫中指定登錄標(biāo)識所創(chuàng)建的用戶名稱。是在數(shù)據(jù)庫中指定登錄標(biāo)識所創(chuàng)建的用戶名稱。 例例16-1116-11刪除刪除windowswindows賬戶賬戶“ZUFE-MXHmeng” ZUFE-MXHmeng” 名為名為“MANAGER”MANAGER”訪問訪問“教教 學(xué)管理學(xué)管理”數(shù)據(jù)庫的訪問權(quán)限。數(shù)據(jù)庫的訪問權(quán)限。 USE USE 教學(xué)管理教學(xué)管理 GOGO EXEC sp_revokedbaccess MANAGEREXEC sp_revokedbaccess MANAGER GOGO 方法二:使用方法二:使用ssmsssms。 數(shù)據(jù)庫安全及訪問控制29 16.4 16.4 角色
35、管理角色管理 角色是一個強大的工具,可以將用戶集中到一個單元中,然后對角色是一個強大的工具,可以將用戶集中到一個單元中,然后對 該單元應(yīng)用權(quán)限。可以建立一個角色來代表單位中一類工作人員該單元應(yīng)用權(quán)限??梢越⒁粋€角色來代表單位中一類工作人員 所執(zhí)行的工作,然后給這個角色授予適當(dāng)?shù)臋?quán)限。當(dāng)工作人員開所執(zhí)行的工作,然后給這個角色授予適當(dāng)?shù)臋?quán)限。當(dāng)工作人員開 始工作時,只須將他們添加為該角色成員,當(dāng)他們離開工作時,始工作時,只須將他們添加為該角色成員,當(dāng)他們離開工作時, 將他們從該角色中刪除。而不必在每個人接受或離開工作時,反將他們從該角色中刪除。而不必在每個人接受或離開工作時,反 復(fù)授予、拒絕和廢
36、除其權(quán)限。權(quán)限在用戶成為角色成員時自動生復(fù)授予、拒絕和廢除其權(quán)限。權(quán)限在用戶成為角色成員時自動生 效。效。 管理員和數(shù)據(jù)庫擁有者在設(shè)置訪問權(quán)限時,應(yīng)首先建立角色,并管理員和數(shù)據(jù)庫擁有者在設(shè)置訪問權(quán)限時,應(yīng)首先建立角色,并 將訪問權(quán)限集中授予角色,之后將需要擁有這一權(quán)限的用戶加入將訪問權(quán)限集中授予角色,之后將需要擁有這一權(quán)限的用戶加入 到角色中,這些用戶即繼承角色的訪問權(quán)限。需要撤消用戶的訪到角色中,這些用戶即繼承角色的訪問權(quán)限。需要撤消用戶的訪 問權(quán)限時,將用戶從角色中刪除即可。問權(quán)限時,將用戶從角色中刪除即可。 數(shù)據(jù)庫安全及訪問控制30 16.4.1 16.4.1 固定服務(wù)器角色固定服務(wù)器角
37、色 權(quán)限角色名稱 固定角 色類型 執(zhí)行BULK INSERT語句 bulkadmin 只能管理SQL Server系統(tǒng)的磁盤文件 Diskadmin 只能在服務(wù)器上創(chuàng)建和修改數(shù)據(jù)庫 Dbcreator 只能管理數(shù)據(jù)庫實例下運行的進程Processadmi n 只能管理服務(wù)器登錄標(biāo)識Securityadm in 添加和刪除連接服務(wù)器,執(zhí)行某些系統(tǒng)存儲過 程 Setupadmin 只能執(zhí)行服務(wù)器配置工作 Serveradmi n 能夠在SQL Server服務(wù)器上執(zhí)行所有操作,其 權(quán)限覆蓋其他各種固定服務(wù)器角色所具有的權(quán) 限 Sysadmin 固 定 服 務(wù) 器 角 色 數(shù)據(jù)庫安全及訪問控制31
38、1 1、查看固定服務(wù)器角色、查看固定服務(wù)器角色 2 2、添加固定服務(wù)器角色成員、添加固定服務(wù)器角色成員 3 3、刪除固定服務(wù)器角色成員、刪除固定服務(wù)器角色成員 數(shù)據(jù)庫安全及訪問控制32 4、用、用T-SQL進行固定服務(wù)器角色成員管理進行固定服務(wù)器角色成員管理 在在SQL Server中使用以下兩個存儲過程來添加或刪除固中使用以下兩個存儲過程來添加或刪除固 定服務(wù)器角色成員:定服務(wù)器角色成員: sp_addsrvrolemember loginame=login,rolename=role sp_dropsrvrolemember loginame=login,rolename=role 其中,
39、其中,login為登錄標(biāo)識名稱,可以為為登錄標(biāo)識名稱,可以為SQL Server登錄標(biāo)識或登錄標(biāo)識或 Windows NT用戶帳戶。用戶帳戶。 role為固定服務(wù)器角色名稱。為固定服務(wù)器角色名稱。 例如:例如: sp_addsrvrolemember ZUFE-MXHZUFE-MXH meng,sysadmin go sp_dropsrvrolemember ZUFE-MXHZUFE-MXH meng,sysadmin go 數(shù)據(jù)庫安全及訪問控制33 16.4.2 16.4.2 固定數(shù)據(jù)庫角色固定數(shù)據(jù)庫角色 禁止數(shù)據(jù)庫中的檢索操作 Db_denydatarea der 固 定 數(shù) 據(jù) 庫 角
40、色 權(quán)限角色名稱 固定角 色類型 禁止修改數(shù)據(jù)庫中的所有數(shù)據(jù) Db_denydatawrite r 能夠執(zhí)行數(shù)據(jù)庫備份操作的權(quán)限 Db_backupoperato r 能夠管理數(shù)據(jù)庫角色及其成員,管理數(shù)據(jù)庫中的語句權(quán)限和 對象權(quán)限,從而控制用戶對數(shù)據(jù)庫的訪問 Db_securityadmin 能夠在一個數(shù)據(jù)庫中創(chuàng)建、修改或刪除數(shù)據(jù)庫對象 Db_ddladmin 能夠?qū)σ粋€數(shù)據(jù)庫的所有表執(zhí)行數(shù)據(jù)更新操作 Db_datawriter 能夠在一個數(shù)據(jù)庫的所有表中檢索數(shù)據(jù) Db_datareader 只能管理數(shù)據(jù)庫用戶帳戶,向數(shù)據(jù)庫添加或刪除Window NT/2000用戶(組)和SQL Server
41、登錄標(biāo)識 Db_accessadmin 數(shù)據(jù)庫最高權(quán)限角色,能夠執(zhí)行所有其他數(shù)據(jù)庫角色可以執(zhí) 行的操作和數(shù)據(jù)庫的維護、配置工作 Db_owner 數(shù)據(jù)庫安全及訪問控制34 1 1、查看固定數(shù)據(jù)庫角色、查看固定數(shù)據(jù)庫角色 2 2、添加固定數(shù)據(jù)庫角色成員、添加固定數(shù)據(jù)庫角色成員 3 3、刪除固定數(shù)據(jù)庫角色成員、刪除固定數(shù)據(jù)庫角色成員 數(shù)據(jù)庫安全及訪問控制35 4、用、用T-SQL進行數(shù)據(jù)庫角色成員管理進行數(shù)據(jù)庫角色成員管理 在在SQL Server中使用以下兩個存儲過程來添加或刪除固定中使用以下兩個存儲過程來添加或刪除固定 數(shù)據(jù)庫角色成員和用戶自定義數(shù)據(jù)庫角色:數(shù)據(jù)庫角色成員和用戶自定義數(shù)據(jù)庫角色
42、: sp_addrolemember rolename=role, membername=security_account sp_droprolemember rolename=role, membername=security_account 其中,其中,role為固定服務(wù)器角色名稱或當(dāng)前數(shù)據(jù)庫中自定義角色名稱。為固定服務(wù)器角色名稱或當(dāng)前數(shù)據(jù)庫中自定義角色名稱。 security_account為待添加或刪除的為待添加或刪除的SQL Server登錄標(biāo)登錄標(biāo) 識、其他角色或識、其他角色或Windows NT/2003用戶帳戶。當(dāng)添加時,如果當(dāng)前用戶帳戶。當(dāng)添加時,如果當(dāng)前 數(shù)據(jù)庫中沒有建立數(shù)
43、據(jù)庫中沒有建立Windows NT/2003用戶帳戶安全帳戶,數(shù)據(jù)庫用用戶帳戶安全帳戶,數(shù)據(jù)庫用 戶帳戶被自動建立。刪除時,戶帳戶被自動建立。刪除時,security_account必須為當(dāng)前數(shù)據(jù)庫必須為當(dāng)前數(shù)據(jù)庫 的一個有效用戶帳戶。的一個有效用戶帳戶。 sp_addrolemember Db_owner,wang 數(shù)據(jù)庫安全及訪問控制36 5 5應(yīng)用程序角色建立與刪除應(yīng)用程序角色建立與刪除 前面介紹的標(biāo)準(zhǔn)角色對訪問控制實現(xiàn)在數(shù)據(jù)庫一級,它決定前面介紹的標(biāo)準(zhǔn)角色對訪問控制實現(xiàn)在數(shù)據(jù)庫一級,它決定 用戶能夠訪問的數(shù)據(jù)庫及其對象。下面介紹另一種訪問控制用戶能夠訪問的數(shù)據(jù)庫及其對象。下面介紹另一種
44、訪問控制 方法方法應(yīng)用程序角色應(yīng)用程序角色。它不同于標(biāo)準(zhǔn)角色,它不是根據(jù)用。它不同于標(biāo)準(zhǔn)角色,它不是根據(jù)用 戶,而是根據(jù)用戶所運行的應(yīng)用程序決定當(dāng)前連接能否訪問戶,而是根據(jù)用戶所運行的應(yīng)用程序決定當(dāng)前連接能否訪問 數(shù)據(jù)庫對象。數(shù)據(jù)庫對象。 使用應(yīng)用程序角色的直接原因有以下兩個方面:使用應(yīng)用程序角色的直接原因有以下兩個方面: 第一、限制訪問數(shù)據(jù)庫所使用的應(yīng)用程序,提高系統(tǒng)安全性。第一、限制訪問數(shù)據(jù)庫所使用的應(yīng)用程序,提高系統(tǒng)安全性。 例如,在一個財務(wù)系統(tǒng)中,用戶添加到數(shù)據(jù)庫中的數(shù)據(jù)不希例如,在一個財務(wù)系統(tǒng)中,用戶添加到數(shù)據(jù)庫中的數(shù)據(jù)不希 望任何非法用戶通過其他任何途徑進行訪問,而只允許通過望任何
45、非法用戶通過其他任何途徑進行訪問,而只允許通過 財務(wù)系統(tǒng)自身檢驗后的合法用戶訪問,這時使用應(yīng)用程序角財務(wù)系統(tǒng)自身檢驗后的合法用戶訪問,這時使用應(yīng)用程序角 色就能達到這一目的。色就能達到這一目的。 第二、提高第二、提高SQL ServerSQL Server服務(wù)器的運行性能。因為應(yīng)用程序角服務(wù)器的運行性能。因為應(yīng)用程序角 色只允許指定的應(yīng)用程序運行,這能避免用戶在色只允許指定的應(yīng)用程序運行,這能避免用戶在SQL ServerSQL Server 服務(wù)器上運行其他程序,從而提高數(shù)據(jù)庫系統(tǒng)的運行性能。服務(wù)器上運行其他程序,從而提高數(shù)據(jù)庫系統(tǒng)的運行性能。 數(shù)據(jù)庫安全及訪問控制37 (1 1)建立應(yīng)用程
46、序角色)建立應(yīng)用程序角色 SQL ServerSQL Server中,只有固定服務(wù)器角色中,只有固定服務(wù)器角色sysadminsysadmin成員、固定數(shù)成員、固定數(shù) 據(jù)庫角色據(jù)庫角色db_ownerdb_owner和和db_securityadmindb_securityadmin成員才能運行以下成員才能運行以下 存儲過程創(chuàng)建或刪除應(yīng)用程序角色:存儲過程創(chuàng)建或刪除應(yīng)用程序角色: sp_addapprole sp_addapprole rolename=role,password=passwordrolename=role,password=password sp_dropapprole ro
47、lename=rolesp_dropapprole rolename=role 例如、例如、在教學(xué)管理數(shù)據(jù)庫中建立應(yīng)用程序角色在教學(xué)管理數(shù)據(jù)庫中建立應(yīng)用程序角色查詢查詢,其口令,其口令 為為123123。 USE 教學(xué)管理教學(xué)管理 GO EXEC sp_addapprole 查詢查詢,123 GO 數(shù)據(jù)庫安全及訪問控制38 (2 2)激活和使用應(yīng)用程序角色)激活和使用應(yīng)用程序角色 建立應(yīng)用角色后,建立應(yīng)用角色后,SQL ServerSQL Server數(shù)據(jù)庫應(yīng)用程序可以調(diào)用數(shù)據(jù)庫應(yīng)用程序可以調(diào)用 系統(tǒng)存儲過程系統(tǒng)存儲過程sp_setapprolesp_setapprole激活角色。其語法格式為
48、:激活角色。其語法格式為: sp_setapprole sp_setapprole rolename=role,password= Encrypt N rolename=role,password= Encrypt N password|password,encrypt=encryptpassword|password,encrypt=encrypt _style_style 其中,其中,Encrypt NEncrypt N選項要求應(yīng)用程序在向選項要求應(yīng)用程序在向SQL ServerSQL Server傳遞傳遞 應(yīng)用程序角色口令之前,將其加密。應(yīng)用程序角色口令之前,將其加密。 encrypt_
49、styleencrypt_style說明加密方式,它有以下兩種取值:說明加密方式,它有以下兩種取值: none:none:用明文方式傳遞,這時默認(rèn)方式;用明文方式傳遞,這時默認(rèn)方式; odbc:odbc:使用使用ODBCODBC規(guī)范定義的規(guī)范定義的EncryptEncrypt加密函數(shù)對角色口令加密函數(shù)對角色口令 進行加密進行加密 數(shù)據(jù)庫安全及訪問控制39 例如,例如,在一個客戶端應(yīng)用程序中可以執(zhí)行以下語句激活前在一個客戶端應(yīng)用程序中可以執(zhí)行以下語句激活前 面創(chuàng)建的應(yīng)用程序角色面創(chuàng)建的應(yīng)用程序角色查詢查詢。 USE 教學(xué)管理教學(xué)管理 GO EXEC sp_setapprole 查詢查詢,123,
50、odbc GO 數(shù)據(jù)庫安全及訪問控制40 應(yīng)用程序角色與標(biāo)準(zhǔn)角色相比,二者之間存在以下差別:應(yīng)用程序角色與標(biāo)準(zhǔn)角色相比,二者之間存在以下差別: (1 1)應(yīng)用程序角色不包含任何成員,而標(biāo)準(zhǔn)角色則擁有自己的應(yīng)用程序角色不包含任何成員,而標(biāo)準(zhǔn)角色則擁有自己的 成員。成員。 (2 2)默認(rèn)時,應(yīng)用程序角色是無效的,只有當(dāng)數(shù)據(jù)庫應(yīng)用程序默認(rèn)時,應(yīng)用程序角色是無效的,只有當(dāng)數(shù)據(jù)庫應(yīng)用程序 執(zhí)行系統(tǒng)存儲過程執(zhí)行系統(tǒng)存儲過程sp_approlesp_approle,并為應(yīng)用程序角色提供正確,并為應(yīng)用程序角色提供正確 的口令后才激活應(yīng)用程序角色。而標(biāo)準(zhǔn)角色一直保持有效。的口令后才激活應(yīng)用程序角色。而標(biāo)準(zhǔn)角色一
51、直保持有效。 (3 3)應(yīng)用程序角色激活后,應(yīng)用程序角色所擁有的訪問權(quán)限才應(yīng)用程序角色激活后,應(yīng)用程序角色所擁有的訪問權(quán)限才 起作用。這時,它屏蔽掉標(biāo)準(zhǔn)角色中的訪問權(quán)限。也就是說,起作用。這時,它屏蔽掉標(biāo)準(zhǔn)角色中的訪問權(quán)限。也就是說, 應(yīng)用程序角色激活后,無論連接用戶是否擁有對數(shù)據(jù)庫的訪應(yīng)用程序角色激活后,無論連接用戶是否擁有對數(shù)據(jù)庫的訪 問權(quán)限,問權(quán)限,SQL ServerSQL Server只根據(jù)應(yīng)用程序角色的訪問權(quán)限判斷應(yīng)只根據(jù)應(yīng)用程序角色的訪問權(quán)限判斷應(yīng) 用程序能否操作指定的數(shù)據(jù)庫。用程序能否操作指定的數(shù)據(jù)庫。 (4 4)在運行應(yīng)用程序所建立的連接斷開后,應(yīng)用程序角色即隨在運行應(yīng)用程序
52、所建立的連接斷開后,應(yīng)用程序角色即隨 之失去作用。之失去作用。 數(shù)據(jù)庫安全及訪問控制41 16.5 16.5 數(shù)據(jù)庫權(quán)限管理數(shù)據(jù)庫權(quán)限管理 當(dāng)用戶成為數(shù)據(jù)庫中的合法用戶之后,他除了具當(dāng)用戶成為數(shù)據(jù)庫中的合法用戶之后,他除了具 有一些系統(tǒng)表的查詢權(quán)之外,并不對數(shù)據(jù)庫中的有一些系統(tǒng)表的查詢權(quán)之外,并不對數(shù)據(jù)庫中的 對象具有任何操作權(quán),因此,下一步就需要為數(shù)對象具有任何操作權(quán),因此,下一步就需要為數(shù) 據(jù)庫中的用戶授予數(shù)據(jù)庫對象的操作權(quán)。據(jù)庫中的用戶授予數(shù)據(jù)庫對象的操作權(quán)。 數(shù)據(jù)庫安全及訪問控制42 16.5.1 16.5.1 權(quán)限種類權(quán)限種類 1、對象權(quán)限 存儲過程 EXECUTE 表、視圖 DEL
53、ETE 表、視圖、列 UPDATE 表、視圖 INSERT 表、視圖、列 SELECT 數(shù)據(jù)庫對象語句 數(shù)據(jù)庫安全及訪問控制43 2 2、語句權(quán)限、語句權(quán)限 語句權(quán)限決定用戶能否操作數(shù)據(jù)庫和數(shù)據(jù)對象,如表、視圖、存儲語句權(quán)限決定用戶能否操作數(shù)據(jù)庫和數(shù)據(jù)對象,如表、視圖、存儲 過程、默認(rèn)和規(guī)則等。語句權(quán)限決定用戶能否執(zhí)行以下語句:過程、默認(rèn)和規(guī)則等。語句權(quán)限決定用戶能否執(zhí)行以下語句: . . CREATE DATABASECREATE DATABASE:創(chuàng)建數(shù)據(jù)庫。:創(chuàng)建數(shù)據(jù)庫。 . CREATE DEFAULT. CREATE DEFAULT:在數(shù)據(jù)庫中建立默認(rèn)值。:在數(shù)據(jù)庫中建立默認(rèn)值。 .
54、 CREATE PROCEDURE. CREATE PROCEDURE:在數(shù)據(jù)庫中創(chuàng)建存儲過程。:在數(shù)據(jù)庫中創(chuàng)建存儲過程。 . CREATE FUNCTION. CREATE FUNCTION:在數(shù)據(jù)庫中創(chuàng)建用戶自定義函數(shù)。:在數(shù)據(jù)庫中創(chuàng)建用戶自定義函數(shù)。 . CREATE RULE. CREATE RULE:在數(shù)據(jù)庫中創(chuàng)建規(guī)則。:在數(shù)據(jù)庫中創(chuàng)建規(guī)則。 . CREATE TABLE. CREATE TABLE:在數(shù)據(jù)庫中創(chuàng)建表。:在數(shù)據(jù)庫中創(chuàng)建表。 . CREATE VIEW. CREATE VIEW:在數(shù)據(jù)庫中創(chuàng)建視圖。:在數(shù)據(jù)庫中創(chuàng)建視圖。 . BACKUP DATABASE. BACKU
55、P DATABASE:備份數(shù)據(jù)庫。:備份數(shù)據(jù)庫。 . BACKUP LOG. BACKUP LOG:備份數(shù)據(jù)庫日志。:備份數(shù)據(jù)庫日志。 在在SQL ServerSQL Server中,每個數(shù)據(jù)庫都有各自獨立的權(quán)限保護,所以對于中,每個數(shù)據(jù)庫都有各自獨立的權(quán)限保護,所以對于 不同的數(shù)據(jù)庫要分別向用戶授予語句權(quán)限。(不同的數(shù)據(jù)庫要分別向用戶授予語句權(quán)限。(CREATE DATABASE CREATE DATABASE 除外)。除外)。 數(shù)據(jù)庫安全及訪問控制44 3 3、隱含權(quán)限、隱含權(quán)限 是指系統(tǒng)安裝以后有些用戶和角色不必授權(quán)就有的許可。是指系統(tǒng)安裝以后有些用戶和角色不必授權(quán)就有的許可。 SQL
56、ServerSQL Server預(yù)定義的固定服務(wù)器角色、固定數(shù)據(jù)庫角色預(yù)定義的固定服務(wù)器角色、固定數(shù)據(jù)庫角色 和數(shù)據(jù)庫對象所有者均具有隱含權(quán)限。和數(shù)據(jù)庫對象所有者均具有隱含權(quán)限。 數(shù)據(jù)庫安全及訪問控制45 16.5.2 16.5.2 權(quán)限管理權(quán)限管理 GRANT: 有權(quán)操作有權(quán)操作 REVOKE: 無權(quán)操作無權(quán)操作 DENY: 不能操作不能操作 數(shù)據(jù)庫安全及訪問控制46 1 1、使用、使用ssmsssms管理權(quán)限管理權(quán)限 數(shù)據(jù)庫安全及訪問控制47 2 2、使用、使用T-SQLT-SQL管理權(quán)限管理權(quán)限 T-SQLT-SQL中的權(quán)限管理語句有以下三種:中的權(quán)限管理語句有以下三種: . . GRA
57、NT GRANT:允許權(quán)限。:允許權(quán)限。 . . DENYDENY:禁止權(quán)限。:禁止權(quán)限。 . . REVOKEREVOKE:取消允許權(quán)限或禁止權(quán)限設(shè)置。:取消允許權(quán)限或禁止權(quán)限設(shè)置。 由于由于SQL ServerSQL Server預(yù)定義角色的隱含權(quán)限是固定的,所預(yù)定義角色的隱含權(quán)限是固定的,所 以不能使用以上語句重新設(shè)置,權(quán)限管理語句只能設(shè)以不能使用以上語句重新設(shè)置,權(quán)限管理語句只能設(shè) 置用戶、角色等權(quán)限。置用戶、角色等權(quán)限。 數(shù)據(jù)庫安全及訪問控制48 (1 1)語句權(quán)限管理)語句權(quán)限管理 語句授權(quán)的命令格式是:語句授權(quán)的命令格式是: GRANTALL|statement_listTOPU
58、BLIC|name_list GRANTALL|statement_listTOPUBLIC|name_list DENY ALL|statement_listTOPUBLIC|name_list DENY ALL|statement_listTOPUBLIC|name_list REVOKE ALL|statement_listFROM PUBLIC|name_list REVOKE ALL|statement_listFROM PUBLIC|name_list ALLALL即全部語句,即全部語句,只有系統(tǒng)管理員可以使用此選項,因為只有只有系統(tǒng)管理員可以使用此選項,因為只有 系統(tǒng)管理員可以授
59、予或收回系統(tǒng)管理員可以授予或收回CREATE DATABASECREATE DATABASE的權(quán)限;的權(quán)限; statement_liststatement_list給出授權(quán)的語句列表,這些語句可以是給出授權(quán)的語句列表,這些語句可以是 CREATE DATABASE CREATE DATABASE (如果執(zhí)行這個語句的用戶是系統(tǒng)管理(如果執(zhí)行這個語句的用戶是系統(tǒng)管理 員)、員)、CREATE DEFAULTCREATE DEFAULT、CREATE PROCEDURECREATE PROCEDURE、CREATE CREATE FUNCTIONFUNCTION、CREATE RULECREAT
60、E RULE、CREATE TABLECREATE TABLE、CREATE VIEWCREATE VIEW、 BACKUP DATABASEBACKUP DATABASE和和DUMP TRANSACTIONDUMP TRANSACTION等;等; PUBLICPUBLIC說明這些語句的執(zhí)行權(quán)限將授予所有的用戶;說明這些語句的執(zhí)行權(quán)限將授予所有的用戶; name_listname_list是數(shù)據(jù)庫用戶名或組名或角色名,說明這些語句的是數(shù)據(jù)庫用戶名或組名或角色名,說明這些語句的 執(zhí)行權(quán)限授予哪些用戶或組。執(zhí)行權(quán)限授予哪些用戶或組。 數(shù)據(jù)庫安全及訪問控制49 例例1 1系統(tǒng)管理員授予注冊名為系統(tǒng)管
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 班級團體合作與協(xié)作能力的培養(yǎng)計劃
- 金融科技下的財富增長路徑
- 倉庫管理中的持續(xù)改進機制計劃
- 跨文化交流下的藝術(shù)作品解讀方法
- 七年級必須收藏:名著《西游記》每回檢測題(36至40回)
- 完善安全評價與監(jiān)測體系計劃
- 跨界融合共筑藝術(shù)教育新未來跨領(lǐng)域合作的藝術(shù)教學(xué)模式探討
- 貴金屬市場動態(tài)與全球供需平衡分析
- 新課標(biāo)2024高考?xì)v史二輪復(fù)習(xí)小題強化練一
- 新課標(biāo)2024年中考生物復(fù)習(xí)第四單元生物圈中的人課時訓(xùn)練13人體的呼吸
- 涉詐風(fēng)險賬戶審查表
- 論完整的學(xué)習(xí)與核心素養(yǎng)的形成課件
- 新零售運營管理PPT完整全套教學(xué)課件
- (完整版)小學(xué)英語語法大全-附練習(xí)題,推薦文檔
- 注塑參數(shù)表完整版
- 初中英語中考總復(fù)習(xí)
- 學(xué)習(xí)弘揚楓橋精神與楓橋經(jīng)驗PPT楓橋經(jīng)驗蘊含的精神和內(nèi)涵PPT課件(帶內(nèi)容)
- ArcEngine二次開發(fā)入門介紹
- 山東大學(xué)出版社六年級上冊傳統(tǒng)文化第一單元寬仁厚愛備課教案
- 選煤廠工完料盡場地清制度
- 煤礦瓦斯防治八招及釋義
評論
0/150
提交評論