SQL應用基礎第八章SQL-Server的安全課件_第1頁
SQL應用基礎第八章SQL-Server的安全課件_第2頁
SQL應用基礎第八章SQL-Server的安全課件_第3頁
SQL應用基礎第八章SQL-Server的安全課件_第4頁
SQL應用基礎第八章SQL-Server的安全課件_第5頁
已閱讀5頁,還剩58頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第八章SQL Server的安全 學習目標 了解SQL Server 2000安全管理機制;掌握登錄帳戶和服務器角色的設置;掌握數據庫用戶和數據庫角色的設置;掌握權限管理的方法。學習重點 登錄帳戶;數據庫用戶;服務器角色與數據庫角色;SQL Server 2000的權限管理。8.1 SQL Server 2000的安全機制SQL Server 2000的安全機制可以劃分為4個等級 8.1 SQL Server 2000的安全機制第一級:客戶端操作系統的安全性第二級:SQL Server 2000登錄安全性若要連接到 Microsoft SQL Server 2000 實例,需要給SQL Ser

2、ver 2000客戶端應用程序提供下面中的信息: 運行 SQL Server 2000實例的計算機所在的網絡名稱實例名(可選,只有在連接到命名實例時才需要)登錄標識符 (ID)8.1 SQL Server 2000的安全機制SQL Server 2000提供的身份驗證模式有兩種,即:1.Windows身份驗證模式2. Windows和SQL Server驗證模式8.1 SQL Server 2000的安全機制第三級:數據庫使用的安全性第四級:數據庫對象使用的安全性8.2 登錄帳戶和服務器角色可以使用企業管理器來設置SQL Server 的身份驗證模式 使用企業管理器添加標準SQL Server

3、登錄帳戶8.2.2 添加標準SQL Server 身份登錄帳戶使用T-SQL添加標準SQL Server登錄帳戶的語法格式為:sp_addlogin loginame = login , passwd = password , defdb = database , deflanguage = language 8.2.2 添加標準SQL Server 身份登錄帳戶例8.1創建了一個名叫“zhl”,密碼是“88908123”,默認數據庫為“students”的標準SQL Server登錄帳戶 EXEC sp_addlogin zhl, 88908123, students GO8.2.2 添加標

4、準SQL Server 身份登錄帳戶使用系統存儲過程sp_defaultdb修改默認數據庫。語法格式:sp_defaultdb loginame = login , defdb = database8.2.2 添加標準SQL Server 身份登錄帳戶使用系統存儲過程sp_defaultlanguage修改登錄帳戶的默認語言。語法格式: sp_defaultlanguage loginame = login , language = language 8.2.2 添加標準SQL Server 身份登錄帳戶例8.2 將 pubs 設置為用戶 zhl的默認數據庫。EXEC sp_defaultdb

5、 zhl, pubs例8.3 將 zhl帳戶連接的默認英語設置為English。EXEC sp_defaultlanguage, zhl, English8.2.2 添加標準SQL Server 身份登錄帳戶使用系統存儲過程sp_password修改登錄帳戶的密碼。語法格式:sp_passwordold=old_password,new=new_password8.2.2 添加標準SQL Server 身份登錄帳戶使用系統存儲過程sp_droplogin刪除SQL Server標準登錄帳戶。語法格式: sp_droplogin loginame = login8.2.2 添加標準SQL Ser

6、ver 身份登錄帳戶在SQL Server中刪除帳戶信息時,有如下限制:已經映射到數據庫用戶的帳戶不允許被刪除;系統帳戶sa不能被刪除,正在使用的帳戶不能被刪除;擁有數據庫的帳戶不能被刪除。 8.2.2 添加標準SQL Server 身份登錄帳戶例8.4 將 zhl帳戶連接的密碼由88908123設置為88999988EXEC sp_password 88908123, 88999988, zhl例8.5 刪除zhl標準帳戶。 EXEC sp_droplogin, zhl8.2.3 添加Windows身份驗證登錄帳戶添加Windows身份驗證登錄帳戶 所謂與Windows集成的登錄帳戶,實際上

7、是將Windows的用戶和工作組映射為SQL Server的登錄帳戶。使用T-SQL添加Windows登錄帳戶語法格式:sp_grantlogin loginame = login8.2.3 添加Windows身份驗證登錄帳戶例8.6 WINDOWS操作系統中已存在域cdny,用戶js,現將其添加為SQL Server登錄。sp_grantlogin cdnyjs或sp_grantlogin cdnyjs 8.2.3 添加Windows身份驗證登錄帳戶使用系統存儲過程sp_revokelogin可以從SQL Server中刪除用sp_grantlogin創建的Windows用戶或組的登錄項。語

8、法格式:sp_revokelogin loginame = login8.2.3 添加Windows身份驗證登錄帳戶拒絕Windows帳戶登錄使用系統存儲過程sp_denylogin可以設置不允許Windows的工作組或用戶連接SQL Server服務器。語法格式:sp_denylogin loginame = login 8.2.3 添加Windows身份驗證登錄帳戶例8.7 刪除cdnystudent帳戶或工作組的登錄。EXEC sp_revokelogin cdnystudent 例8.8 拒絕cdny/student帳戶登錄SQL Server。EXEC sp_denylogin cd

9、nystudent8.2.4 特殊登錄帳戶sa特殊登錄帳戶sa sa帳戶擁有服務器和所有的數據庫,即sa擁有最高的管理權限,可以執行服務器范圍內的所有操作。sa帳戶無法刪除。 8.2.5 服務器角色固定服務器角色用于對登錄帳戶授予服務器范圍內的安全權限。System administrators 可執行SQL Server安裝中的任何操作Security administrators 可管理服務器的登錄Server administratorsq 可配置服務器范圍的設置Setup administrators可以管理擴展的存儲過程Process administrators可以管理運行在SQL

10、 Server中的進程Disk administrators 可以管理磁盤文件Database creators 可以創建和更改數據庫Bulk inset administrators 可以執行大容量插入操作8.2.5 服務器角色使用系統存儲過程瀏覽服務器角色:Sp_helpsrvrolesrvrolename=role其中srvrolename=role是指固定服務器角色的名稱例8.9 使用sp_helpsrvrole存儲過程瀏覽本地服務器角色。EXEC sp_helpsrvrole8.2.5 服務器角色將一個帳戶加入一個服務器角色,也可使用系統存儲過程sp_addsrvrolemember

11、。語法格式:sp_addsrvrolemember loginame = loginrolename = role8.2.5 服務器角色例8.10 將固定服務器角色sysadmin分配給了登錄帳戶cdnystudent1,使cdnystudent1擁有了角色sysadmin所擁有的所有權限。EXEC sp_addsrvrolemember cdnystudent1 sysadmin 8.2.5 服務器角色使用系統存儲過程瀏覽固定服務器角色的權限語法格式:sp_srvrolepermissionsrvrolename=role 例8.11 EXEC sp_srvrolepermission sy

12、sadmin -顯示sysadmin角色的權限。EXEC sp_srvrolepermission -顯示所有固定服務器角色的權限。 8.3.1 數據庫用戶對于每個要求訪問數據庫的登錄,應將其帳戶添加到數據庫,成為數據庫用戶。如果登錄帳戶不是數據庫用戶,則登錄賬戶還是無法訪問數據庫。1使用企業管理器添加數據庫用戶使用T-SQL添加數據庫用戶8.3.1 數據庫用戶使用T-SQL添加數據庫用戶語法格式:sp_grantdbaccess loginame=login,name_in_db= name_in_db OUTPUT8.3.1 數據庫用戶例8.12 在pubs數據庫中為 Windows NT

13、 用戶 cdnyleijin 添加帳戶,并取名為 leijin。Use pubsGOEXEC sp_grantdbaccess cdnyleijin , leijinGO8.3.2 刪除數據庫用戶使用企業管理器刪除數據庫用戶2使用系統存儲過程sp_revokedbaccess刪除數據庫用戶語法格式:sp_revokedbaccess name_in_db = name8.3.2 刪除數據庫用戶例8.13 刪除數據庫用戶leijin。USE pubsGOEXEC sp_revokedbaccess leijinGO8.3.2 刪除數據庫用戶注意:revokedbaccess 存儲過程不能刪除以下

14、內容: dbo 、guest內置用戶帳戶;數據庫中的固定角色。Windows NT 組中的 Windows NT 用戶。 在用戶定義事務內部不能執行 sp_revokedbaccess8.3.3 內置用戶帳戶dbo用戶(1)dbo 是具有在數據庫范圍內執行一切操作的內置用戶。它是數據庫的所有者。(2)固定服務器角色sysadmin的任何成員都映射到每個數據庫內稱為dbo 的一個特殊用戶上。另外,由固定服務器角色sysadmin的任何成員創建的任何對象都自動屬于dbo。(3)無法刪除 dbo 用戶,且此用戶始終出現在每個數據庫中。8.3.3 內置用戶帳戶(4)只有由 sysadmin 固定服務器

15、角色成員(或 dbo 用戶)創建的對象才屬于 dbo。由任何其他也不是 syadmin 固定服務器角色成員的用戶(包括 db_owner 固定數據庫角色成員)創建的對象: 屬于創建該對象的用戶,而不是 dbo。用創建該對象的用戶名限定。(5)它的用戶ID(UID)總是18.3.3 內置用戶帳戶guest用戶(1)guest 用戶帳戶允許沒有用戶帳戶的登錄訪問數據庫。 (2)可以在除 master 和 tempdb 外(在這兩個數據庫中它必須始終存在)的所有數據庫中添加或刪除 guest 用戶。 8.3.3 內置用戶帳戶(3)guest用戶的存在意味著所有登錄到SQL Server服務器的用戶都

16、可以訪問數據庫,即使它還沒有成為本數據庫的用戶。(4)默認情況下,新建的數據庫中沒有 guest 用戶帳戶。 8.3.3 內置用戶帳戶例8.14將 guest 用戶帳戶添加到名為 students 的數據庫中。USE studentsGOEXECUTE sp_grantdbaccess guestGO8.3.4 數據庫角色固定數據庫角色是在每個數據庫中都存在的預定義組。數據庫管理員可以將一個用戶加入到一個或多個數據庫角色中。固定數據庫角色不能被添加、修改或刪除。SQL Server在數據庫級別上設置了固定數據庫角色來提供基本的數據庫權限管理。 8.3.4 數據庫角色固定數據庫角色 描述db_o

17、wner 數據庫所有者db_accessadmin 數據庫訪問管理員db_securityadmin 數據庫安全管理員db_ddladmin 數據庫 DDL 管理員db_backupoperator 數據庫備份操作員db_datareader 數據庫數據讀取者db_datawriter 數據庫數據寫入者db_denydatareader 數據庫拒絕數據讀取者db_denydatawriter 數據庫拒絕數據寫入者8.3.5 管理數據庫角色系統存儲過程sp_addrole在當前數據庫中創建新的數據庫角色語法格式:sp_addrole rolename = role , ownername = o

18、wner 8.3.5 管理數據庫角色例8.15 將名為 teacher的新角色添加到studnets數據庫中。EXEC sp_addrole teacher8.3.5 管理數據庫角色系統存儲過程sp_addrolemember將某個數據庫用戶加入到某個數據庫角色中語法格式:sp_addrolemember rolename = role , membername = security_account8.3.5 管理數據庫角色例8.16將數據庫用戶加入到students數據庫teacher角色中A. 添加 Windows NT 用戶將 Windows NT 登錄帳戶cdnyzhl 添加到 stu

19、dents 數據庫,使其成為數據庫用戶 jszhl。然后,再將 jszhl 添加到students數據庫的 teacher 角色中。USE studentsGOEXEC sp_grantdbaccess cdnyzhl, jszhlGOEXEC sp_addrolemember teacher, jszhl8.3.5 管理數據庫角色B. 添加 SQL Server 用戶將 SQL Server 用戶 leijin添加到studetns數據庫中的teacher角色。EXEC sp_addrolemember teacher, leijin 8.3.5 管理數據庫角色系統存儲過程sp_dropro

20、lemember從當前數據庫中的數據庫角色中刪除安全帳戶語法格式:sp_droprolemember rolename = role , membername = security_account8.3.5 管理數據庫角色例8.17 從角色teacher 中刪除用戶leijin。EXEC sp_droprolemember teacher, leijin8.3.5 管理數據庫角色角色應用(1)public 角色public 角色是一個特殊的數據庫角色,每個數據庫用戶都屬于它。public 角色捕獲數據庫中用戶的所有默認權限。無法將用戶、組或角色指派給public 角色,因為默認情況下它們即屬于

21、該角色。public 角色含在每個數據庫中,包括 master、msdb、tempdb、model 和所有用戶數據庫。無法除去public 角色。8.3.5 管理數據庫角色(2)應用程序角色應用程序角色是一種特殊的數據庫角色。應用程序角色不包含任何成員,用戶不允許添加到該角色中。8. 4 權限管理SQL Server 2000 中的權限分為三種:對象權限、語句權限和隱含權限1.對象權限是指數據庫用戶對數據庫中的表、存儲過程、視圖等對象的操作權限。 2.隱含權限是指系統預定義的服務器角色或數據庫角色,或數據庫所有者和數據庫對象所有者擁有的權限。隱含權限不能明確地賦予和撤銷。 8. 4 權限管理3

22、.語句權限指是否可以執行某些T-SQL命令的權限。具體包括:CREATE DATABASE:創建一個新數據庫及存儲該數據庫的文件BACKUP DATABASE:備份整個數據庫BACKUP LOG:備份事務日志CREATE DEFAULT:創建稱為默認值的對象CREATE FUNCTION:創建用戶定義函數CREATE PROCEDURE:創建存儲過程CREATE RULE:創建規則CREATE TABLE:創建表CREATE VIEW:創建視圖8. 4 權限管理權限管理包含以下三方面的內容: 授予權限 拒絕權限 取消權限 管理權限的方法有兩種:一是使用T-SQL語句,二是通過企業管理器。8.

23、4 權限管理(1)授予權限授予對象權限的語法格式如下:GRANTALL PRIVILEGES | permission,.n (column ,.n) ON table | view | ON table | view (column,.n) | ON stored_procedure TO security_account ,.nWITH GRANT OPTION8. 4 權限管理授予命令權限語法格式:GRANT ALL statement ,.nTO security_account ,.n8. 4 權限管理例8.18 將“students”數據庫的“stu”表中查詢數據的權限授予了public角色,將在“stu”表中執行INSERT操作的權限授予了yq。USE studentsGOGRANT SELECT ON stu TO publicGOGRANT INSERT ON stuTo yq8. 4 權限管理(2)撤銷權限撤銷語句權限。語法格式:REVOKE ALL | statement ,.n FROM security_acc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論