老系統(tǒng)還有10幾臺sqlserver數(shù)據(jù)庫,最近需要對這些sqlserver的權(quán)限方面做一些梳理,這里先簡單介紹下sqlserver角色與權(quán)限管理方面的內(nèi)容。
安全性是所有數(shù)據(jù)庫管理系統(tǒng)的一個重要特征。理解安全性問題是理解數(shù)據(jù)庫管理系統(tǒng)安全性機(jī)制的前提。
1、當(dāng)用戶登錄數(shù)據(jù)庫系統(tǒng)時,如何確保只有合法的用戶才能登錄到系統(tǒng)中?
這是一個最基本的安全性問題,也是數(shù)據(jù)庫管理系統(tǒng)提供的基本功能。
在Microsoft SQL Server 2008系統(tǒng)中,通過身份驗證模式和主體解決這個問題。
1)身份驗證模式
Microsoft SQL Server 2008系統(tǒng)提供了兩種身份驗證模式:Windows身份驗證模式和混合模式。
Windows身份驗證模式:
在該模式中,用戶通過Windows用戶賬戶連接SQL Server時,使用Windows操作系統(tǒng)中的賬戶名和密碼。
混合模式:
在混合模式中,當(dāng)客戶端連接到服務(wù)器時,既可能采取Windows身份驗證,也可能采取SQL Server身份驗證。
主體是可以請求系統(tǒng)資源的個體或組合過程。例如,數(shù)據(jù)庫用戶是一種主體,可以按照自己的權(quán)限在數(shù)據(jù)庫中執(zhí)行操作和使用相應(yīng)的數(shù)據(jù)。
2)主體
主體是可以請求系統(tǒng)資源的個體或組合過程。例如,數(shù)據(jù)庫用戶是一種主體,可以按照自己的權(quán)限在數(shù)據(jù)庫中執(zhí)行操作和使用相應(yīng)的數(shù)據(jù)。
Microsoft SQL Server 2008系統(tǒng)有多種不同的主體,不同主體之間的關(guān)系是典型的層次結(jié)構(gòu)關(guān)系,位于不同層次上的主體其在系統(tǒng)中影響的范圍也不同。位于層次比較高的主體,其作用范圍比較大;位于層次比較低的主體,其作用范圍比較小。
2、當(dāng)用戶登錄到系統(tǒng)中,可以執(zhí)行哪些操作、使用哪些對象和資源?
在Microsoft SQL Server 2008系統(tǒng)中,通過安全對象和權(quán)限設(shè)置來解決這個問題。
3、數(shù)據(jù)庫中的對象由誰所有?
如果是由用戶所有,那么當(dāng)用戶被刪除時,其所擁有的對象怎么辦,難道數(shù)據(jù)庫對象可以成為沒有所有者的“孤兒”嗎?
在Microsoft SQL Server 2008系統(tǒng)中,這個問題是通過用戶和架構(gòu)分離來解決的。
客戶機(jī)安全機(jī)制
網(wǎng)絡(luò)傳輸?shù)陌踩珯C(jī)制
實例級別安全機(jī)制
數(shù)據(jù)庫級別安全機(jī)制
對象級別安全機(jī)制
1、固定服務(wù)器角色
固定服務(wù)器角色是服務(wù)器級別的主體,它們的作用范圍是整個服務(wù)器。固定服務(wù)器角色已經(jīng)具備了執(zhí)行指定操作的權(quán)限,可以把其他登錄名作為成員添加到固定服務(wù)器角色中,這樣該登錄名可以繼承固定服務(wù)器角色的權(quán)限。
下面按照從最低級別的角色(bulkadmin)到最高級別的角色(sysadmin)的順序進(jìn)行描述:
Bulkadmin:這個服務(wù)器角色的成員可以運行BULK INSERT語句。這條語句允許從文本文件中將數(shù)據(jù)導(dǎo)入到SQL Server 2008數(shù)據(jù)庫中,為需要執(zhí)行大容量插入到數(shù)據(jù)庫的域賬戶而設(shè)計。 Dbcreator:這個服務(wù)器角色的成員可以創(chuàng)建、更改、刪除和還原任何數(shù)據(jù)庫。這不僅是適合助理DBA的角色,也可能是適合開發(fā)人員的角色。 Diskadmin:這個服務(wù)器角色用于管理磁盤文件,比如鏡像數(shù)據(jù)庫和添加備份設(shè)備。它適合助理DBA。 Processadmin:SQL Server 2008能夠多任務(wù)化,也就是說可以通過執(zhí)行多個進(jìn)程做多個事件。例如,SQL Server 2008可以生成一個進(jìn)程用于向高速緩存寫數(shù)據(jù),同時生成另一個進(jìn)程用于從高速緩存中讀取數(shù)據(jù)。這個角色的成員可以結(jié)束(在SQL Server 2008中稱為刪除)進(jìn)程。 Securityadmin:這個服務(wù)器角色的成員將管理登錄名及其屬性。他們可以授權(quán)、拒絕和撤銷服務(wù)器級權(quán)限。也可以授權(quán)、拒絕和撤銷數(shù)據(jù)庫級權(quán)限。另外,它們可以重置SQL Server 2008登錄名的密碼。 Serveradmin:這個服務(wù)器角色的成員可以更改服務(wù)器范圍的配置選項和關(guān)閉服務(wù)器。例如SQL Server 2008可以使用多大內(nèi)存或監(jiān)視通過網(wǎng)絡(luò)發(fā)送多少信息,或者關(guān)閉服務(wù)器,這個角色可以減輕管理員的一些管理負(fù)擔(dān)。 Setupadmin:為需要管理鏈接服務(wù)器和控制啟動的存儲過程的用戶而設(shè)計。這個角色的成員能添加到setupadmin,能增加、刪除和配置鏈接服務(wù)器,并能控制啟動過程。 Sysadmin:這個服務(wù)器角色的成員有權(quán)在SQL Server 2008中執(zhí)行任何任務(wù)。 Public:有兩大特點,第一,初始狀態(tài)時沒有權(quán)限;第二,所有的數(shù)據(jù)庫用戶都是它的成員。
2、數(shù)據(jù)庫角色
這里主要包括三種類型的數(shù)據(jù)庫角色:
固定數(shù)據(jù)庫角色:微軟提供的作為系統(tǒng)一部分的角色; 用戶定義的標(biāo)準(zhǔn)數(shù)據(jù)庫角色:你自己定義的角色,將Windows用戶以一組自定義的權(quán)限分組; 應(yīng)用程序角色:用來授予應(yīng)用程序?qū)iT的權(quán)限,而非授予用戶組或者單獨用戶。
這里主要介紹幾個固定數(shù)據(jù)庫角色
1、常用的權(quán)限
2、操作權(quán)限
權(quán)限分為3種狀態(tài):授予、拒絕、撤銷,可以使用如下的語句來修改權(quán)限的狀態(tài)。
授予權(quán)限(GRANT):授予權(quán)限以執(zhí)行相關(guān)的操作。通過角色,所有該角色的成員繼承此權(quán)限。
撤銷權(quán)限(REVOKE):撤銷授予的權(quán)限,但不會顯示阻止用戶或角色執(zhí)行操作。用戶或角色仍然能繼承其他角色的GRANT權(quán)限。
拒絕權(quán)限(DENY):顯式拒絕執(zhí)行操作的權(quán)限,并阻止用戶或角色繼承權(quán)限,該語句優(yōu)先于其他授予的權(quán)限。
后面會梳理下Oracle和mysql的一些權(quán)限及怎么去管理方面,感興趣的朋友可以關(guān)注一下~
一、現(xiàn)在win10系統(tǒng)已經(jīng)比較普遍了,筆者也是從16年就開始升級了win10使用至今。說實話,早已經(jīng)不想退回win7了。win10作為新系統(tǒng),對比較老舊的一些軟件支持不好或者說不支持。就以SQL2000為例,十幾年前的老產(chǎn)品了,win10本身是不支持的,但因為2000體積小、安裝速度快、成熟等原因,還是應(yīng)用比較廣泛的,更有甚者,有的軟件只支持SQL2000。今天我們就來看下win10系統(tǒng)如何安裝SQL2000,其實主要是權(quán)限的問題,win10比前代在系統(tǒng)盤(C盤)的權(quán)限控制上收緊了很多,而我們需要放開這些權(quán)限。
二、設(shè)置系統(tǒng)盤(C盤)權(quán)限,筆者使用的是win10原版專業(yè)版
1、首先更改syswow64文件夾的權(quán)限,給予administrators組完全控制的權(quán)限,如圖:
2、第一張圖片所示點擊“高級”按鈕,如下圖操作,把所有者改為管理員administrator
3、勾選下圖紅圈所示項目,強(qiáng)制下級繼承我們更改后的權(quán)限
三、將SQL2000安裝包目錄下的SQLUNIRL.DLL文件復(fù)制到syswow64文件夾下替換原文件
四、接下來我們就可以安裝SQL2000了,具體步驟可以參考我之前的文章。這里還需要注意的一點是:如果win10升級了,SQL將不能正常啟動,權(quán)限會恢復(fù)默認(rèn)設(shè)置,需要把上述步驟再做一遍,包括覆蓋SQLUNIRL.DLL文件。