数据库实验(数据库安全管理)
一、實驗?zāi)康?#xff1a;
了解SQL Server 2000中的兩種用戶登錄模式;
熟悉SQL Server 2000中登錄帳戶、用戶、角色、權(quán)限的概念;
掌握SQL Server 2000中創(chuàng)建帳戶、數(shù)據(jù)庫用戶的方法,會使用角色來分配權(quán)限
?
二、實驗準(zhǔn)備:
SQL Server的用戶權(quán)限控制是SQL Server一個最重要的管理概念,也是眾多管理任務(wù)之一。SQL Server的登錄方式有標(biāo)準(zhǔn)SQL Server登錄和集成Windows系統(tǒng)登錄兩種。
SQL Server集成的安全登錄模式即將Windows系統(tǒng)的用戶和工作組映射為SQL Server的登陸帳戶。Windows集成登錄模式實際上是讓W(xué)indows系統(tǒng)代替SQL Server執(zhí)行對登陸審查的任務(wù)。
如果要采用SQL Server管理的安全登錄模式實現(xiàn)SQL Server服務(wù)器的登錄連接,用戶必須擁有合法的帳號和正確的密碼。由SQL Server系統(tǒng)本身來進行用戶的身份驗證。
?
三、實驗內(nèi)容:
??????????????????
?
1、創(chuàng)建登錄帳戶
用戶可以通過企業(yè)管理器或系統(tǒng)提供的存儲過程來進行登錄帳戶的創(chuàng)建。這里使用系統(tǒng)存儲過程來創(chuàng)建。
下面的例子創(chuàng)建了一個登陸帳戶:
語句:sp_addlogin? 帳戶名,密碼,默認數(shù)據(jù)庫;
這個例子創(chuàng)建了一個名為164, 密碼是000000,默認數(shù)據(jù)庫為student的帳戶。在建立用戶的登錄帳號信息時,用戶應(yīng)該選擇默認的數(shù)據(jù)庫,以后每次連接上服務(wù)器后,系統(tǒng)都會自動轉(zhuǎn)到默認的數(shù)據(jù)庫上。這里也可以不指定數(shù)據(jù)庫,系統(tǒng)默認為master庫。?
2、修改和刪除帳戶
建立完成的帳戶信息還可以進行修改。用戶可以使用系統(tǒng)存儲過程sp_defaultdb,sp_defaultlanguage來修改默認數(shù)據(jù)庫和默認語言。例如:
語句:sp_defaultdb? 帳戶名,目標(biāo)數(shù)據(jù)庫;
? ? ? ? ? ?sp_defaultdb? ?帳戶名,目標(biāo)語言;
自己創(chuàng)建的數(shù)據(jù)庫是已經(jīng)建好的數(shù)據(jù)庫名,將帳戶的默認數(shù)據(jù)庫改為該數(shù)據(jù)庫。
?
(系統(tǒng)默認是‘Simplified Chinese’,建議使用默認項。)
返回的結(jié)果是:
默認數(shù)據(jù)庫已更改為student。
164?的默認語言已改為 English。
使用系統(tǒng)存儲過程sp_password可修改SQL Server的帳戶密碼,如:
語句:sp_password? 原密碼,新密碼,目標(biāo)帳戶;
該例子修改了164的帳戶密碼。
要刪除 SQL Server標(biāo)準(zhǔn)登錄帳戶可以使用系統(tǒng)存儲過程sp_droplogin,例如:
語句:sp_droplogin? 帳戶名;
在SQL Server中刪除帳戶信息時,有很多限制。主要有以下幾種情況:
系統(tǒng)帳戶sa不能被刪除;
已經(jīng)映射到數(shù)據(jù)庫用戶上的帳戶不能被刪除;
正在使用或連接的帳戶不能被刪除;
擁有數(shù)據(jù)庫的帳戶不能被刪除
?
3、添加數(shù)據(jù)庫用戶
????以上的操作只是建立了登錄SQL Server的帳戶,用戶登錄后還不能對數(shù)據(jù)庫進行訪問,將登錄帳戶添加為數(shù)據(jù)庫用戶后,使用登錄帳戶登錄的SQL Server的用戶就可以實現(xiàn)對數(shù)據(jù)庫的訪問。
????添加數(shù)據(jù)庫用戶可通過存儲過程sp_grantdbaccess來實現(xiàn),參照下面的例子將你的帳戶添加為student的用戶。
sp_grantdbaccess? 數(shù)據(jù)庫用戶名;
4、刪除數(shù)據(jù)庫用戶
??可以使用系統(tǒng)存儲過程sp_revokedbaccess來刪除數(shù)據(jù)庫用戶,更確切地說,是斷開SQL Server的登錄帳戶與數(shù)據(jù)庫用戶之間的對應(yīng)關(guān)系。
語句:sp_revokedbaccess? ?目標(biāo)數(shù)據(jù)庫用戶名
返回結(jié)果為:
用戶已從當(dāng)前數(shù)據(jù)庫中除去。
?
5、角色
角色是SQL Server2000引進的用來集中管理數(shù)據(jù)庫或服務(wù)器權(quán)限的概念。數(shù)據(jù)庫管理員將數(shù)據(jù)庫的權(quán)限賦予角色,然后將角色再賦予給數(shù)據(jù)庫用戶或登錄帳戶,從而是數(shù)據(jù)庫用戶或登錄帳戶擁有相應(yīng)的權(quán)限。
SQL Server提供了固定服務(wù)器角色和數(shù)據(jù)庫角色,用戶可以修改固定數(shù)據(jù)庫角色的權(quán)限,也可以自己創(chuàng)建新的數(shù)據(jù)庫角色,在分配權(quán)限給新的角色。
(1)固定服務(wù)器角色
使用系統(tǒng)存儲過程sp_helpsrvrole可以瀏覽固定服務(wù)器角色的內(nèi)容。
存儲過程sp_addsrvrolemember可以將某固定服務(wù)器角色分配給某給定的登錄帳戶。
下面的操作將登錄帳戶164添加為服務(wù)器角色sysadmin的成員,使其具有創(chuàng)建和修改數(shù)據(jù)庫的權(quán)利:
語句:sysadmin? 帳戶名,目標(biāo)服務(wù)器角色名;
存儲過程sp_dropsrvrolemember可以收回分配給某給定的登錄帳戶的指定固定服務(wù)器角色。
這個例子收回了分配給登錄帳戶164的固定服務(wù)器角色sysadmin.
語句:sp_dropsrvrolemembe 帳戶名,目標(biāo)服務(wù)器角色;
(2)固定數(shù)據(jù)庫角色
?使用系統(tǒng)存儲過程sp_helpdbfixedrole可以瀏覽所有的固定數(shù)據(jù)庫角色的相關(guān)內(nèi)容。如:
用存儲過程sp_addrolemember可將某個登錄帳戶增加到某個固定數(shù)據(jù)庫角色中,從而使該帳戶擁有指定固定數(shù)據(jù)庫角色所擁有的所有權(quán)限。
語句:sp_addrolemember? 帳戶名,目標(biāo)數(shù)據(jù)庫角色名;
進行下面的操作給你的帳戶授予對student庫的只讀權(quán)限。
同樣使用sp_droprolemember可以從某個固定數(shù)據(jù)庫角色中刪除指定的登錄帳戶,從而收回分配的對student庫的只讀權(quán)限。
語句:sp_drprolemember? 帳戶名,目標(biāo)數(shù)據(jù)庫角色名;
四、思考題
1.? 思考身份驗證模式與登錄帳號的關(guān)系及如何用各種帳號進行登錄;
身份驗證模式有兩種,一種是Windows身份驗證,一種是混合驗證。
Windows驗證模式下,SQL servers數(shù)據(jù)庫是運行在Windows的系統(tǒng)上,電腦自帶的系統(tǒng)有作為網(wǎng)絡(luò)操作系統(tǒng)的,本身就具有管理登錄,驗證用戶和合法性的能力,所以Windows正是利用這一機制,在該模式下,用戶只要通過Windows的認證就可以鏈接到SQL server并進行使用。
混合驗證模式下,用戶既可以通過Windows的認證鏈接到SQL server,也可以使用SQL server認證,不過,在SQL server認證模式下,用戶在鏈接SQL server時必須提供用戶名和密碼。
2.登錄帳號、數(shù)據(jù)庫用戶及數(shù)據(jù)庫角色之間的關(guān)系;
在SQL server中,嘗試登陸服務(wù)器時,SQL server要驗證登陸賬號;當(dāng)嘗試連接數(shù)據(jù)庫時,SQL server要驗證數(shù)據(jù)庫用戶,數(shù)據(jù)庫用戶包含在數(shù)據(jù)庫角色中。
3.數(shù)據(jù)庫用戶、數(shù)據(jù)庫角色與數(shù)據(jù)庫對象之間的關(guān)系,并說出直接對用戶授權(quán)與間接對用戶授權(quán)(系統(tǒng)權(quán)限與對象權(quán)限)的方法;
數(shù)據(jù)庫用戶用來指出那一一個人可以訪問哪個數(shù)據(jù)庫,是對用戶直接授權(quán),而數(shù)據(jù)庫角色是
數(shù)據(jù)庫直接授權(quán)給數(shù)據(jù)庫角色,再把數(shù)據(jù)庫角色指派給數(shù)據(jù)庫用戶,而不用直接對數(shù)據(jù)庫用
戶直接授權(quán),數(shù)據(jù)庫對象是指數(shù)據(jù)庫用戶或角色可以訪問指定數(shù)據(jù)庫中全部或者部分表,視
圖等數(shù)據(jù)庫對象的權(quán)限。
直接對用戶授權(quán):使用grant語句,指向?qū)ο笤O(shè)為目標(biāo)用戶。
間接對用戶授權(quán):使用grant語句,指向?qū)ο?strong>不設(shè)為目標(biāo)用戶,而是設(shè)置為其他用戶或者角色,再通過其他用戶或角色把權(quán)限給目標(biāo)用戶。
4.固定服務(wù)器角色、固定數(shù)據(jù)庫角色、自定義數(shù)據(jù)庫角色與應(yīng)用程序角色的區(qū)別與驗證其權(quán)限的方法。
?所有預(yù)定義的數(shù)據(jù)庫角色和管理者自定義的某一角色都是自定義角色,應(yīng)用程序角色是應(yīng)用程序間接地存取數(shù)據(jù)庫中數(shù)據(jù)而使用的角色,應(yīng)用角色不具有組的角色。
?
總結(jié)
以上是生活随笔為你收集整理的数据库实验(数据库安全管理)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 修改程序的图标与详细描述
- 下一篇: 一个能和企鹅一样飞的创意