數據庫實驗(數據庫安全管理)

一、實驗目的:

瞭解SQL Server 2000中的兩種用戶登錄模式;

熟悉SQL Server 2000中登錄帳戶、用戶、角色、權限的概念;

掌握SQL Server 2000中創建帳戶、數據庫用戶的方法,會使用角色來分配權限

 

二、實驗準備:

SQL Server的用戶權限控制是SQL Server一個最重要的管理概念,也是衆多管理任務之一。SQL Server的登錄方式有標準SQL Server登錄和集成Windows系統登錄兩種。

SQL Server集成的安全登錄模式即將Windows系統的用戶和工作組映射爲SQL Server的登陸帳戶。Windows集成登錄模式實際上是讓Windows系統代替SQL Server執行對登陸審查的任務。

如果要採用SQL Server管理的安全登錄模式實現SQL Server服務器的登錄連接,用戶必須擁有合法的帳號和正確的密碼。由SQL Server系統本身來進行用戶的身份驗證。

 

三、實驗內容:

                  

 

1、創建登錄帳戶

用戶可以通過企業管理器或系統提供的存儲過程來進行登錄帳戶的創建。這裏使用系統存儲過程來創建。

下面的例子創建了一個登陸帳戶:

語句:sp_addlogin  帳戶名,密碼,默認數據庫;

這個例子創建了一個名爲164, 密碼是000000,默認數據庫爲student的帳戶。在建立用戶的登錄帳號信息時,用戶應該選擇默認的數據庫,以後每次連接上服務器後,系統都會自動轉到默認的數據庫上。這裏也可以不指定數據庫,系統默認爲master庫。 

2、修改和刪除帳戶

建立完成的帳戶信息還可以進行修改。用戶可以使用系統存儲過程sp_defaultdb,sp_defaultlanguage來修改默認數據庫和默認語言。例如:

語句:sp_defaultdb  帳戶名,目標數據庫;

           sp_defaultdb   帳戶名,目標語言;

自己創建的數據庫是已經建好的數據庫名,將帳戶的默認數據庫改爲該數據庫。

 

(系統默認是‘Simplified Chinese’,建議使用默認項。)

返回的結果是:

默認數據庫已更改爲student。

164 的默認語言已改爲 English。

使用系統存儲過程sp_password可修改SQL Server的帳戶密碼,如:

語句:sp_password  原密碼,新密碼,目標帳戶;

該例子修改了164的帳戶密碼。

要刪除 SQL Server標準登錄帳戶可以使用系統存儲過程sp_droplogin,例如:

語句:sp_droplogin  帳戶名;

在SQL Server中刪除帳戶信息時,有很多限制。主要有以下幾種情況:

系統帳戶sa不能被刪除;

已經映射到數據庫用戶上的帳戶不能被刪除;

正在使用或連接的帳戶不能被刪除;

擁有數據庫的帳戶不能被刪除

 

3、添加數據庫用戶

    以上的操作只是建立了登錄SQL Server的帳戶,用戶登錄後還不能對數據庫進行訪問,將登錄帳戶添加爲數據庫用戶後,使用登錄帳戶登錄的SQL Server的用戶就可以實現對數據庫的訪問。

    添加數據庫用戶可通過存儲過程sp_grantdbaccess來實現,參照下面的例子將你的帳戶添加爲student的用戶。

sp_grantdbaccess  數據庫用戶名;

4、刪除數據庫用戶

  可以使用系統存儲過程sp_revokedbaccess來刪除數據庫用戶,更確切地說,是斷開SQL Server的登錄帳戶與數據庫用戶之間的對應關係。

語句:sp_revokedbaccess   目標數據庫用戶名

返回結果爲:

用戶已從當前數據庫中除去。

 

5、角色

角色是SQL Server2000引進的用來集中管理數據庫或服務器權限的概念。數據庫管理員將數據庫的權限賦予角色,然後將角色再賦予給數據庫用戶或登錄帳戶,從而是數據庫用戶或登錄帳戶擁有相應的權限。

SQL Server提供了固定服務器角色和數據庫角色,用戶可以修改固定數據庫角色的權限,也可以自己創建新的數據庫角色,在分配權限給新的角色。

(1)固定服務器角色

使用系統存儲過程sp_helpsrvrole可以瀏覽固定服務器角色的內容。

存儲過程sp_addsrvrolemember可以將某固定服務器角色分配給某給定的登錄帳戶。

下面的操作將登錄帳戶164添加爲服務器角色sysadmin的成員,使其具有創建和修改數據庫的權利:

語句:sysadmin  帳戶名,目標服務器角色名;

存儲過程sp_dropsrvrolemember可以收回分配給某給定的登錄帳戶的指定固定服務器角色。

這個例子收回了分配給登錄帳戶164的固定服務器角色sysadmin.

語句:sp_dropsrvrolemembe 帳戶名,目標服務器角色;

(2)固定數據庫角色

 使用系統存儲過程sp_helpdbfixedrole可以瀏覽所有的固定數據庫角色的相關內容。如:

用存儲過程sp_addrolemember可將某個登錄帳戶增加到某個固定數據庫角色中,從而使該帳戶擁有指定固定數據庫角色所擁有的所有權限。

語句:sp_addrolemember  帳戶名,目標數據庫角色名;

進行下面的操作給你的帳戶授予對student庫的只讀權限。

同樣使用sp_droprolemember可以從某個固定數據庫角色中刪除指定的登錄帳戶,從而收回分配的對student庫的只讀權限。

語句:sp_drprolemember  帳戶名,目標數據庫角色名;

四、思考題

1.  思考身份驗證模式與登錄帳號的關係及如何用各種帳號進行登錄;

身份驗證模式有兩種,一種是Windows身份驗證,一種是混合驗證。

Windows驗證模式下,SQL servers數據庫是運行在Windows的系統上,電腦自帶的系統有作爲網絡操作系統的,本身就具有管理登錄,驗證用戶和合法性的能力,所以Windows正是利用這一機制,在該模式下,用戶只要通過Windows的認證就可以鏈接到SQL server並進行使用。

混合驗證模式下,用戶既可以通過Windows的認證鏈接到SQL server,也可以使用SQL server認證,不過,在SQL server認證模式下,用戶在鏈接SQL server時必須提供用戶名和密碼。

  1. 登錄帳號、數據庫用戶及數據庫角色之間的關係;

在SQL server中,嘗試登陸服務器時,SQL server要驗證登陸賬號;當嘗試連接數據庫時,SQL server要驗證數據庫用戶,數據庫用戶包含在數據庫角色中。

  1. 數據庫用戶、數據庫角色與數據庫對象之間的關係,並說出直接對用戶授權與間接對用戶授權(系統權限與對象權限)的方法;

數據庫用戶用來指出那一一個人可以訪問哪個數據庫,是對用戶直接授權,而數據庫角色是

數據庫直接授權給數據庫角色,再把數據庫角色指派給數據庫用戶,而不用直接對數據庫用

戶直接授權,數據庫對象是指數據庫用戶或角色可以訪問指定數據庫中全部或者部分表,視

圖等數據庫對象的權限。

直接對用戶授權:使用grant語句,指向對象設爲目標用戶。

間接對用戶授權:使用grant語句,指向對象設爲目標用戶,而是設置爲其他用戶或者角色,再通過其他用戶或角色把權限給目標用戶。

4.固定服務器角色、固定數據庫角色、自定義數據庫角色與應用程序角色的區別與驗證其權限的方法。

所有預定義的數據庫角色和管理者自定義的某一角色都是自定義角色,應用程序角色是應用程序間接地存取數據庫中數據而使用的角色,應用角色不具有組的角色。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章