我們新增了7個固定的服務器角色和9個固定的數據庫角色。服務器角色是分散系統管理員工作的一個辦法。在SQL
Server 6.5和更早的版本中,有一個叫做“sa”的帳號,這個帳號可以在數據庫服務器上做任何事情。在那時,你可以有10個Windows
NT用戶被映射成“sa”,這意味著這10個用戶都可以在任何時間做任何事情,然而服務器審計工具只會記錄成“sa”的操作。你沒有任何辦法來確認到底是誰做了什麼操作。
SQL Server 7.0改進了這一點。不是像以前那樣使“sa”具有所有的特權,權限是通過角色成員來獲得的。我們還把系統管理員的特權劃分成了多個角色。例如,為了在SQL
Server 7.0中讓某人獲得系統管理員權限,你只需要把他加入到“sysadmin”這個固定服務器角色中即可。
還有其它角色,例如“dbcreator”是用來創建和更改數據庫的;“securityadmin”是用來增加新的登錄或者重置缺省數據庫的。“sa”登錄仍然存在,是為了保持向後兼容性。但該權限是通過成為“sysadmin”角色中的成員來獲得的。服務器的審計追蹤功能將根據你的Windows
NT或者SQL Server登錄名來跟蹤所做的改變,而不管分配給該帳號的安全特權。
在單個數據庫這一級別上情況也非常相似。在以前版本中,人們會把自己化名為“dbo”來獲得對數據庫的所有權限。現在用戶可以被分配成“db_owner”角色,同樣可以擁有對單個數據庫的完全控制權限。而且,還有更具體的角色,比如“db_acessadmin”用來控制對數據庫的訪問,“db_securityadmin”用來給予其他用戶訪問權限,“db_backupOperator”用於備份數據。我們還增加了用戶自定義的和應用程序角色,而且允許用戶可以同時成為多個數據庫角色的成員。
與Windows NT集成是使SQL Server 7.0安全性更易於實施還是使它更為強健呢?
兩者都是。你應該使用7.0版的集成安全的原因之一就是,6.5及更早版本的標准安全模式沒有提供一些最基本的功能。
關於安全方面的一個基本原則就是口令應該在一定的時間後過期。SQL
Server標准安全模式沒有這個功能。另外,它也不禁止為空的口令,不要求口令必須長於一定數目的字符,也不提供任何其它高級口令管理功能。我們希望能夠利用Windows
NT,它已經包括所有這些功能。現在,當你鎖定使用Windows NT的口令政策時,你通過集成安全同時也鎖定了SQL
Server。從這個角度來說,它確實增強了安全性。
從使用的角度來說,增加整個域的用戶到SQL Server中去要比以前容易的多,而且該過程是動態的。在SQL
Server 6.5中,如果你使用SQL Server的安全管理器來增加一組用戶,它將列舉在那個組中的所有用戶。假如該NT組中有人被新增或者被刪除,你必須重新執行以上的操作。而現在呢,舉個例子:假如你把“domain
user”組加入作為一個SQL Server登錄,而“domain user”這個NT組中有用戶被刪除,你不需要在SQL
Server中做任何改動來防止該用戶獲得對SQL Server的訪問權限。