詳解SQL Server2000安全管理機(jī)制(2)_Mssql數(shù)據(jù)庫教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:解決sql server查詢速度慢11個(gè)方法在 網(wǎng)頁制作 過程中經(jīng)�?梢杂龅絊QLServer數(shù)據(jù)庫查詢速度慢的的情況,通過總結(jié)發(fā)現(xiàn)其原因主要有以下幾種: 1、沒有索引或者沒有用到索引(這是查詢慢最常見的問題,是程序設(shè)計(jì)的缺陷) 2、I/O吞吐量小,形成了瓶頸效應(yīng)。 3、沒有創(chuàng)建計(jì)算列導(dǎo)致查詢不優(yōu)化。 4
對(duì)于操作服務(wù)器的各個(gè)組,我們可以用sp_addsrvrolemember存儲(chǔ)過程把各個(gè)登錄加入到合適的服務(wù)器角色:SQL Server Administrators成為Sysadmins角色的成員,SQL Server DB Creators成為Dbcreator角色的成員,SQL Server Security Operators成為Securityadmin角色的成員。注意sp_addsrvrolemember存儲(chǔ)過程的第一個(gè)參數(shù)要求是帳戶的完整路徑。例如,BigCo域的JoeS應(yīng)該是bigco\joes(如果你想用本地帳戶,則路徑應(yīng)該是server_name\joes)。
要?jiǎng)?chuàng)建在所有新數(shù)據(jù)庫中都存在的用戶,你可以修改Model數(shù)據(jù)庫。為了簡(jiǎn)化工作,SQL Server自動(dòng)把所有對(duì)Model數(shù)據(jù)庫的改動(dòng)復(fù)制到新的數(shù)據(jù)庫。只要正確運(yùn)用Model數(shù)據(jù)庫,我們無需定制每一個(gè)新創(chuàng)建的數(shù)據(jù)庫。另外,我們可以用sp_addrolemember存儲(chǔ)過程把SQL Server Security Operators加入到db_securityadmin,把SQL Server Developers加入到db_owner角色。
注意我們?nèi)匀粵]有授權(quán)任何組或帳戶訪問數(shù)據(jù)庫。事實(shí)上,我們不能通過Enterprise Manager授權(quán)數(shù)據(jù)庫訪問,因?yàn)镋nterprise Manager的用戶界面只允許我們把數(shù)據(jù)庫訪問權(quán)限授予合法的登錄帳戶。SQL Server不要求NT帳戶在我們把它設(shè)置為數(shù)據(jù)庫角色的成員或分配對(duì)象權(quán)限之前能夠訪問數(shù)據(jù)庫,但Enterprise Manager有這種限制。盡管如此,只要我們使用的是sp_addrolemember存儲(chǔ)過程而不是Enterprise Manager,就可以在不授予域內(nèi)NT帳戶數(shù)據(jù)庫訪問權(quán)限的情況下為任意NT帳戶分配權(quán)限。
到這里為止,對(duì)Model數(shù)據(jù)庫的設(shè)置已經(jīng)完成。但是,如果你的用戶群體對(duì)企業(yè)范圍內(nèi)各個(gè)應(yīng)用數(shù)據(jù)庫有著類似的訪問要求,你可以把下面這些操作移到Model數(shù)據(jù)庫上進(jìn)行,而不是在面向特定應(yīng)用的數(shù)據(jù)庫上進(jìn)行。
四、允許數(shù)據(jù)庫訪問
在數(shù)據(jù)庫內(nèi)部,與迄今為止我們對(duì)登錄驗(yàn)證的處理方式不同,我們可以把權(quán)限分配給角色而不是直接把它們分配給全局組。這種能力使得我們能夠輕松地在安全策略中使用SQL Server驗(yàn)證的登錄。即使你從來沒有想要使用SQL Server登錄帳戶,本文仍舊建議分配權(quán)限給角色,因?yàn)檫@樣你能夠?yàn)槲磥砜赡艹霈F(xiàn)的變化做好準(zhǔn)備。
創(chuàng)建了數(shù)據(jù)庫之后,我們可以用sp_grantdbaccess存儲(chǔ)過程授權(quán)DB_Name Users組訪問它。但應(yīng)該注意的是,與sp_grantdbaccess對(duì)應(yīng)的sp_denydbaccess存儲(chǔ)過程并不存在,也就是說,你不能按照拒絕對(duì)服務(wù)器訪問的方法拒絕對(duì)數(shù)據(jù)庫的訪問。如果要拒絕數(shù)據(jù)庫訪問,我們可以創(chuàng)建另外一個(gè)名為DB_Name Denied Users的全局組,授權(quán)它訪問數(shù)據(jù)庫,然后把它設(shè)置為db_denydatareader以及db_denydatawriter角色的成員。注意SQL語句權(quán)限的分配,這里的角色只限制對(duì)對(duì)象的訪問,但不限制對(duì)DDL(Data Definition Language,數(shù)據(jù)定義語言)命令的訪問。
正如對(duì)登錄過程的處理,如果訪問標(biāo)記中的任意SID已經(jīng)在Sysusers系統(tǒng)表登記,SQL將允許用戶訪問數(shù)據(jù)庫。因此,我們既可以通過用戶的個(gè)人NT帳戶SID授權(quán)用戶訪問數(shù)據(jù)庫,也可以通過用戶所在的一個(gè)(或者多個(gè))組的SID授權(quán)。為了簡(jiǎn)化管理,我們可以創(chuàng)建一個(gè)名為DB_Name Users的擁有數(shù)據(jù)庫訪問權(quán)限的全局組,同時(shí)不把訪問權(quán)授予所有其他的組。這樣,我們只需簡(jiǎn)單地在一個(gè)全局組中添加或者刪除成員就可以增加或者減少數(shù)據(jù)庫用戶。
五、分配權(quán)限
實(shí)施安全策略的最后一個(gè)步驟是創(chuàng)建用戶定義的數(shù)據(jù)庫角色,然后分配權(quán)限。完成這個(gè)步驟最簡(jiǎn)單的方法是創(chuàng)建一些名字與全局組名字配套的角色。例如對(duì)于前面例子中的會(huì)計(jì)系統(tǒng),我們可以創(chuàng)建Accounting Data Entry Operators、Accounting Data Entry Managers之類的角色。由于會(huì)計(jì)數(shù)據(jù)庫中的角色與帳務(wù)處理任務(wù)有關(guān),你可能想要縮短這些角色的名字。然而,如果角色名字與全局組的名字配套,你可以減少混亂,能夠更方便地判斷出哪些組屬于特定的角色。
創(chuàng)建好角色之后就可以分配權(quán)限。在這個(gè)過程中,我們只需用到標(biāo)準(zhǔn)的GRANT、REVOKE和DENY命令。但應(yīng)該注意DENY權(quán)限,這個(gè)權(quán)限優(yōu)先于所有其他權(quán)限。如果用戶是任意具有DENY權(quán)限的角色或者組的成員,SQL Server將拒絕用戶訪問對(duì)象。
接下來我們就可以加入所有SQL Server驗(yàn)證的登錄。用戶定義的數(shù)據(jù)庫角色可以包含SQL Server登錄以及NT全局組、本地組、個(gè)人帳戶,這是它最寶貴的特點(diǎn)之一。用戶定義的數(shù)據(jù)庫角色可以作為各種登錄的通用容器,我們使用用戶定義角色而不是直接把權(quán)限分配給全局組的主要原因就在于此。
由于內(nèi)建的角色一般適用于整個(gè)數(shù)據(jù)庫而不是單獨(dú)的對(duì)象,因此這里建議你只使用兩個(gè)內(nèi)建的數(shù)據(jù)庫角色,,即db_securityadmin和db_owner。其他內(nèi)建數(shù)據(jù)庫角色,例如db_datareader,它授予對(duì)數(shù)據(jù)庫里面所有對(duì)象的SELECT權(quán)限。雖然你可以用db_datareader角色授予SELECT權(quán)限,然后有選擇地對(duì)個(gè)別用戶或組拒絕SELECT權(quán)限,但使用這種方法時(shí),你可能忘記為某些用戶或者對(duì)象設(shè)置權(quán)限。一種更簡(jiǎn)單、更直接而且不容易出現(xiàn)錯(cuò)誤的方法是為這些特殊的用戶創(chuàng)建一個(gè)用戶定義的角色,然后只把那些用戶訪問對(duì)象所需要的權(quán)限授予這個(gè)用戶定義的角色。
六、簡(jiǎn)化安全管理
SQL Server驗(yàn)證的登錄不僅能夠方便地實(shí)現(xiàn),而且與NT驗(yàn)證的登錄相比,它更容易編寫到應(yīng)用程序里。但是,如果用戶的數(shù)量超過25,或者服務(wù)器數(shù)量在一個(gè)以上,或者每個(gè)用戶都可以訪問一個(gè)以上的數(shù)據(jù)庫,或者數(shù)據(jù)庫有多個(gè)管理員,SQL Server驗(yàn)證的登錄不容易管理。由于SQL Server沒有顯示用戶有效權(quán)限的工具,要記憶每個(gè)用戶具有哪些權(quán)限以及他們?yōu)楹我玫竭@些權(quán)限就更加困難。即使對(duì)于一個(gè)數(shù)據(jù)庫管理員還要擔(dān)負(fù)其他責(zé)任的小型系統(tǒng),簡(jiǎn)化安全策略也有助于減輕問題的復(fù)雜程度。因此,首選的方法應(yīng)該是使用NT驗(yàn)證的登錄,然后通過一些精心選擇的全局組和數(shù)據(jù)庫角色管理數(shù)據(jù)庫訪問。
下面是一些簡(jiǎn)化安全策略的經(jīng)驗(yàn)規(guī)則:
用戶通過SQL Server Users組獲得服務(wù)器訪問,通過DB_Name Users組獲得數(shù)據(jù)庫訪問。
用戶通過加入全局組獲得權(quán)限,而全局組通過加入角色獲得權(quán)限,角色直接擁有數(shù)據(jù)庫里的權(quán)限。
需要多種權(quán)限的用戶通過加入多個(gè)全局組的方式獲得權(quán)限。
只要規(guī)劃得恰當(dāng),你能夠在域控制器上完成所有的訪問和權(quán)限維護(hù)工作,使得服務(wù)器反映出你在域控制器上進(jìn)行的各種設(shè)置調(diào)整。雖然實(shí)際應(yīng)用中情況可能有所變化,但本文介紹的基本措施仍舊適用,它們能夠幫助你構(gòu)造出很容易管理的安全策略。
分享:解析SQL Server數(shù)據(jù)庫恢復(fù)操作實(shí)例最近在操作 SQL Server 時(shí)遇到問題,發(fā)現(xiàn)一臺(tái)服務(wù)器出現(xiàn)Raid故障,其中的一個(gè)SQLServer日志文件(擴(kuò)展名LDF)損壞嚴(yán)重,基本不能使用,但是數(shù)據(jù)文件損壞不嚴(yán)重,經(jīng)過努力通過下面的操作使數(shù)據(jù)全部恢復(fù),過程如下: 首先新建一個(gè)同名的數(shù)據(jù)庫,然后再停掉SQLSe
相關(guān)Mssql數(shù)據(jù)庫教程:
- sql 語句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數(shù)據(jù)庫,提示 無法為該請(qǐng)求檢索數(shù)據(jù) 錯(cuò)誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲(chǔ)過程參數(shù)的用法實(shí)例詳解
Mssql數(shù)據(jù)庫教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫教程推薦
- SSB(SQLservice Service Broker) 入門實(shí)例介紹
- 獲取SQL Server表字段的各種屬性實(shí)例代碼
- 解析SqlServer2000獲取當(dāng)前日期及格式
- 解析SQL Server 2000 SP4與數(shù)據(jù)鏈接池問題
- 解析SQL Server數(shù)據(jù)應(yīng)用在不同的數(shù)據(jù)庫中
- SQL Server控制語句的基本應(yīng)用
- 解析應(yīng)對(duì)SQL Server數(shù)據(jù)庫崩潰的方法
- 數(shù)據(jù)庫日常維護(hù)常用的腳本概述及部分測(cè)試
- 解讀SQL Server小知識(shí):Processor Affinity
- 使用Sqlserver事務(wù)發(fā)布實(shí)現(xiàn)數(shù)據(jù)同步(sql2008)
猜你也喜歡看這些
- MYSQL索引建立需要注意以下幾點(diǎn)細(xì)節(jié)
- MySQL:數(shù)據(jù)庫知識(shí)點(diǎn)
- mysql5.6.10安裝詳細(xì)圖文教程
- Ubuntu下取消MySQL數(shù)據(jù)庫本機(jī)綁定限制方法
- MySQL——修改root密碼的4種方法(以windows為例)
- 模板無憂:mysql數(shù)據(jù)庫優(yōu)化總結(jié)
- 使用java處理字符串公式運(yùn)算的方法
- 解決sql server 2005 express中sa不能登錄
- MySQL 關(guān)于表復(fù)制 insert into 語法的詳細(xì)介紹
- SQL2005錯(cuò)誤:2812 的解決方法
- 相關(guān)鏈接:
- 教程說明:
Mssql數(shù)據(jù)庫教程-詳解SQL Server2000安全管理機(jī)制(2)
。