999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關于實現(xiàn)SQL Server安全性的論述分析

2022-02-19 01:24:48李素奇
中文信息 2022年12期
關鍵詞:數(shù)據(jù)庫用戶

李素奇

(射陽縣中醫(yī)院,江蘇 射陽 224300)

我們在接觸SQL Server時經(jīng)常會碰到三個術語分別是登錄名、用戶名、賬號,訪問SQL Server時必須要有登錄名,在master數(shù)據(jù)庫中的syslogins表里存放每個登錄名的信息。登錄名不同于用戶名,使用登錄名并不能訪問數(shù)據(jù)庫中的資源,此時必須要創(chuàng)建用戶名;在數(shù)據(jù)庫里創(chuàng)建用戶名并與其中一個登錄名關聯(lián),用戶信息存放在數(shù)據(jù)庫的sysusers表中,且用戶沒有口令與他關聯(lián),用戶訪問特定對象的權限是需要授予的。總之,數(shù)據(jù)庫的對象是用戶,根據(jù)授予的權限來獲得資源,登錄名則不能獲得資源,只是進門的鑰匙,而賬號則是特指用戶管理器中創(chuàng)建的賬戶。

在大多數(shù)情況下,我們習慣登錄名和用戶名使用一樣的名稱,系統(tǒng)管理員一般用sa表示,數(shù)據(jù)庫屬主一般用dbo表示,sa始終關聯(lián)著dbo用戶,只有在新的登錄名創(chuàng)建后才能創(chuàng)建新的用戶。

一、SQL Server的安全層次

在登錄SQL Server時,我們需要經(jīng)過三步驗證,第一步需要正確的登錄名和密碼登錄到SQL Server,但此時還不能訪問數(shù)據(jù)庫資源。第二步在特定數(shù)據(jù)庫中創(chuàng)建或綁定用戶,允許用戶與特定數(shù)據(jù)庫連接并訪問資源。第三步指派用戶對特定數(shù)據(jù)庫的對象的訪問權限,比如哪些表、視圖、存儲過程是用戶有權使用運行的。

二、SQL Server的驗證模式

我們在登錄Windows系統(tǒng)后,系統(tǒng)管理員的賬戶也有SQL Server的管理權,為保證特定的用戶能夠訪問SQL Server數(shù)據(jù)庫那應該需要怎樣設置呢,這就涉及到SQL Server的驗證模式,SQL Server支持兩種不同的安全模式,即Windows驗證模式和混合安全驗證模式。

在Windows驗證模式下,SQL Server數(shù)據(jù)庫檢測當前Windows 用戶賬戶,并在syslogins表中查找該賬戶,如有則有權限登錄,并且不需要輸入登錄名和口令進行驗證,在此過程中SQL Server是從RPC連接中來獲得Windows的用戶信息,Windows驗證優(yōu)點在于,首先,SQL Server數(shù)據(jù)庫管理員只需管理數(shù)據(jù)庫,用戶賬戶由Windows 去管理,其次,Windows管理用戶賬戶的工具相比SQL Server的更強大,SQL Server如需這些功能,需要定制來進行擴展。

在混合安全驗證模式下,允許Windows驗證模式或者SQL Server的驗證模式進行登錄連接數(shù)據(jù)庫,當通信時使用TCP/IP Sockets就是使用SQL Server進行驗證登錄;當使用命名管道就是使用Windows進行驗證登錄,使用混合安全模式靈活性更好,更能適應不同的應用場景。使用SQL Server驗證時需輸入登錄名和口令,在syslogins表中進行匹配,匹配成功,正常登錄,

SQL Server的驗證模式類型的確定,取決于服務器與客戶和網(wǎng)絡驗證模型之間使用的網(wǎng)絡通信協(xié)議。一般情況下我們可以運用SQL server 工具企業(yè)管理器來進行設置、修改驗證模式。

三、數(shù)據(jù)庫角色和服務器角色

用戶管理是一件復雜的事情,如何保證用戶在不超出設置的權限范圍內,訪問到他們所需要的數(shù)據(jù),是每個數(shù)據(jù)庫管理員需要慎重分配的。我們知道用戶可以進行分組,也就是需要訪問相同數(shù)據(jù)且具有相同權限的用戶放入一個組里進行統(tǒng)一管理。此時可以把組當成角色來理解,在SQL server里有數(shù)據(jù)庫角色和服務器角色兩種,其中數(shù)據(jù)庫級的對象是數(shù)據(jù)庫角色,包含數(shù)據(jù)庫名,而服務器級的對象是服務器角色,包含登錄名(見圖1)。

圖1 登錄過程圖

SQL Server 安裝完成后,系統(tǒng)自動會創(chuàng)建以下一些固定的數(shù)據(jù)庫角色如:

Db_owner(數(shù)據(jù)庫的屬主,能執(zhí)行特定數(shù)據(jù)庫的所有的任務。)

Db_accessadmin(能在數(shù)據(jù)庫中添加、刪除數(shù)據(jù)庫角色、用戶)

Db_securityadmin(能在數(shù)據(jù)庫中分配對象和語句權限)

Db_ddladmin(能在數(shù)據(jù)庫中添加、刪除和修改對象)

Db_backupoperator(能恢復或備份數(shù)據(jù)庫)

Db_datareader(能查看任意表中的數(shù)據(jù))

Db_datawriter(能在表中添加、修改、刪除數(shù)據(jù))

Db_denydatareader(拒絕讀取表中的數(shù)據(jù))

Db_denydatawriter(拒絕修改表中的數(shù)據(jù))

以上這些數(shù)據(jù)角色可在數(shù)據(jù)庫sysusers表里查看。SQL Server數(shù)據(jù)庫中的用戶都是公共角色成員,管理員可以定義數(shù)據(jù)庫用戶的角色,比如有一個醫(yī)療的角色和一個護理的角色,在醫(yī)療部中有幾位科室主管,這些科室主管用戶不能在護理部和科護士長的角色中,此時就需要我們繼續(xù)創(chuàng)建角色,把科室主管加到角色中并為分配一定的權限來進行工作。

SQL Server 安裝完成后,系統(tǒng)也自動會創(chuàng)建以下一些固定的服務器角色如:

Sysadmin(系統(tǒng)管理員組,可執(zhí)行任何任務)

Securityadmin(審核、管理服務器登錄名)

Serveradmin(設置服務器及配置信息)

Setupadmin(可復制、安裝)

Processadmin(管理進程)

Diskadmin(管理磁盤文件)

Dbcreator(修改、建立數(shù)據(jù)庫)

以上這些服務器角色可在數(shù)據(jù)庫master 的syslogins表里查看。

數(shù)據(jù)庫的安全性離不開數(shù)據(jù)庫角色的控制,用戶通過數(shù)據(jù)庫角色中的用戶名確定對數(shù)據(jù)庫操作的權限。數(shù)據(jù)庫角色分為標準角色和應用程序角色。

一般來說每個數(shù)據(jù)庫的系統(tǒng)表里都保存角色和用戶信息,sysusers系統(tǒng)表中有uid,name,gid等字段在數(shù)據(jù)庫中用戶的標識是uid,組用gid來表示,在sysuser表中uid與gid相等的行就是定義的角色。其中gid與uid都等于0是public的角色,所以一般可以通過對uid來判斷sysuser表中的記錄是角色還是用戶。

四、權限管理

數(shù)據(jù)庫里的對象和全部的數(shù)據(jù)庫都是SQL server 的對象,在一個數(shù)據(jù)庫中表、存儲過程、規(guī)則、視圖、缺省和自定義的數(shù)據(jù)類型都是其對象。它們各自都有其對應的屬主,簡而論之創(chuàng)建該對象的用戶就是其屬主。比如系統(tǒng)管理員(sa)創(chuàng)建數(shù)據(jù)庫后,并在其登錄后sa在該數(shù)據(jù)庫中則是數(shù)據(jù)庫屬主(dbo),再比如sa用戶創(chuàng)建表,則sa將對該表擁有權限。

對象名是該對象屬主的一部分,數(shù)據(jù)庫中所有的對象都歸該數(shù)據(jù)庫的屬主所擁有,比如當查詢appdata數(shù)據(jù)庫中mancode表中的內容,一般通過select命令查詢:select *from mancode。但如果用戶fck在appdata數(shù)據(jù)庫中創(chuàng)建了表doctor,你則需要限定該對象的名字:fck.mancode。在數(shù)據(jù)庫appdata中任何有權限的用戶都可創(chuàng)建同一名稱的表。所以在數(shù)據(jù)庫appdata中就有fck.mancode,lyy.mancode,cd.mancode,chy.mancode等。數(shù)據(jù)庫中的用戶訪問其中某一對象時,如該對象屬主的用戶名沒有限制,那將先訪問擁有該對象的用戶,其次數(shù)據(jù)庫屬主所擁有的對象。

權限對用戶賬戶來說是其中重要的屬性之一,可以完成特定范圍內的一些操作。SQL server一般擁有的權限,有兩種不同的類型??刂朴脩襞c對象進行操作交互就是對象的權限,特別是在插入、修改、刪除、查詢某一表中行的數(shù)據(jù),又或者某一存儲過程能否執(zhí)行?;謴秃蛡浞輸?shù)據(jù)庫、刪除和創(chuàng)建對象通過語句權限來實現(xiàn)。

權限用來完成特定的操作,是用戶賬戶的屬性,權限一般有三種類型,分別是對象權限、語句權限、暗示性權限。對象權限是控制用戶與對象進行交互、操作,主要進行查詢、插入、修改、刪除數(shù)據(jù)庫中某個表的數(shù)據(jù)或運行一個存儲過程,一般有五個權限,分別是查詢(select)、修改(update)、刪除(delete)、插入(insert)、執(zhí)行(exec),在數(shù)據(jù)庫屬性內設置。語句權限適用于備份、恢復數(shù)據(jù)庫刪除、創(chuàng)建對象,在添加用戶后設置。暗示性權限是數(shù)據(jù)庫角色、服務器角色等擁有的權限,由系統(tǒng)設置完成。

數(shù)據(jù)庫中的用戶根據(jù)數(shù)據(jù)庫的角色被設定了一些缺省權限,這樣的用戶分為四類。分別是數(shù)據(jù)庫管理員(配置服務器,創(chuàng)建、刪除數(shù)據(jù)庫,master數(shù)據(jù)庫被系統(tǒng)管理員一直擁有),數(shù)據(jù)庫屬主(管理數(shù)據(jù)庫,創(chuàng)建、管理數(shù)據(jù)庫中的對象),對象屬主(對象屬主dbo在對象上授予、回收權限等操作),除以上三類的都歸為第四類。實際上我們發(fā)現(xiàn)權限是重疊的,正常情況下系統(tǒng)管理員會被設定為數(shù)據(jù)庫的屬主,這時系統(tǒng)管理員既可以管理服務器也可以刪除、創(chuàng)建、管理數(shù)據(jù)庫,同時數(shù)據(jù)庫中的所有對象數(shù)據(jù)庫屬主都可以擁有,這樣看來系統(tǒng)管理員就同時擔任了前三類角色,而其余的用戶則可以是第四類角色。

所有權鏈是SQL Server中難以理解和比較復雜的,當我們創(chuàng)建存儲過程或者試圖時,同時也創(chuàng)建了所有權鏈,實際上存儲過程或者視圖創(chuàng)建時的對象的擁有者的名單就是一個所有權鏈。當用戶在視圖中通過select提取數(shù)據(jù)時,SQL server既檢查在該視圖用戶的權限,也要檢查所有權鏈。所有權鏈有兩種類型,當視圖的屬主擁有視圖中全部引用的對象時,(unbroken ownership chain)是該視圖的所有權鏈。當多個以上的用戶擁有一個視圖的對象時,所有權鏈將斷鏈(broken ownership chain)。比如,用戶yb在allpat表上創(chuàng)建視圖時,所有權鏈將斷鏈。所有權鏈斷鏈不是恒定的錯誤,在任意數(shù)據(jù)庫中由任意多個用戶創(chuàng)建的視圖都有可能出現(xiàn)所有權鏈斷鏈,理解在所有權鏈內部權限所起到的作用是很重要的。

根據(jù)上文我們已知道對象和語句上權限是如何運行工作的,但是如何實現(xiàn)的呢?將所有權鏈、權限、所有權組合起來是一個讓人難以理解且復雜的事情,系統(tǒng)管理員是如何對它們進行跟蹤和管理?在單屬主模式(single owner model)和多屬主模式(multiple owner model)這兩種模式下可以跟蹤和創(chuàng)建安全性。單屬主模式(single owner model)中,數(shù)據(jù)庫里的所有對象被dbo所擁有,dbo具有授權和收回的權限。多屬主模式(multiple owner model)中,用戶可以直接管理、創(chuàng)建表及數(shù)據(jù)。當然它們也有各自的優(yōu)、缺點,單屬主模式(single owner model)缺點是所有在對象上權限的變化及處理需要dbo實時跟蹤,優(yōu)點是在這兩種模式下相對簡單,數(shù)據(jù)庫中dbo擁有控制權。多屬主模式(multiple owner model)缺點是所有權鏈斷鏈需要一定能力水平才能解決,優(yōu)點在于dbo的工作量被大大減少了。在一些特殊情況下,單屬主模式(single owner model)和多屬主模式(multiple owner model)這兩種模式聯(lián)合。在設計數(shù)據(jù)庫時我們會碰到用戶不光擁有自己的表,且這些表還有為應用程序做的個性化設置或者其他表里數(shù)據(jù)的子集,通過客戶端的應用程序來控制數(shù)據(jù)的輸出與輸入并且表的創(chuàng)建也被管理起來了。這樣簡化了用戶的管理。

以下示例可直觀地了解以上的內容。

在數(shù)據(jù)庫appdata中創(chuàng)建一個角色ruser,擁有表allpat的所有權限、表inpat的查詢(select)權限,再創(chuàng)建luser登錄名,并為它創(chuàng)建uuser賬戶,同時歸類到ruser角色中,用戶賬戶uuser不能有對mzdj表的查詢權限(select)。

Exec sp_addrole ‘ruser’ --ruser角色創(chuàng)建

Grant all on allpat to ruser ---ruser角色擁有allpat表的所有權限

Grant select on inpat to ruser ---ruser角色擁有inpat表的查詢權限

Exec sp_addlogin ‘luser’,’pwd’,‘a(chǎn)ppdata’ --增加登錄用戶名luser

Exec sp_grantdbaccess ‘luser’,‘uuser’ --添加賬戶uuser

Exec sp_addrolemember ‘ruser’,‘uuser’ --增加uuser為ruser的成員

綜上所述我們知道服務器角色是可以分配賬戶,數(shù)據(jù)庫角色管理賬戶,根據(jù)目的不同分配不同的權限來規(guī)范用戶操作,定義和生成權限是系統(tǒng)管理員平時的重要任務。

總之,提高數(shù)據(jù)庫的安全性,保護數(shù)據(jù)庫,防止因非法操作而造成的數(shù)據(jù)泄露、損壞、更改。

猜你喜歡
數(shù)據(jù)庫用戶
數(shù)據(jù)庫
財經(jīng)(2017年15期)2017-07-03 22:40:49
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
Camera360:拍出5億用戶
100萬用戶
主站蜘蛛池模板: 亚洲中文字幕精品| 中国一级特黄大片在线观看| 久久男人视频| 精品久久人人爽人人玩人人妻| 国产午夜小视频| 国产欧美在线视频免费| 亚洲综合狠狠| 免费一极毛片| 狠狠操夜夜爽| 国产一区二区在线视频观看| 国产麻豆91网在线看| 亚洲天堂高清| 欧洲成人在线观看| 欧美影院久久| 伊人婷婷色香五月综合缴缴情| 亚洲AV无码乱码在线观看代蜜桃 | 国产一级毛片在线| 91亚洲精品第一| 91美女视频在线| 国产精品va| 日韩欧美国产中文| 国产精品无码制服丝袜| 91精品情国产情侣高潮对白蜜| 99久久99这里只有免费的精品| 日韩精品欧美国产在线| 亚洲午夜综合网| AV在线麻免费观看网站| 亚洲精品大秀视频| 亚洲国产欧美目韩成人综合| 亚洲a级在线观看| 亚洲成人动漫在线观看| 婷婷成人综合| 韩日无码在线不卡| 亚洲国产系列| 在线欧美一区| 久久77777| 九色国产在线| 日本高清免费一本在线观看| 亚洲品质国产精品无码| 亚洲欧洲日本在线| 国产精品性| 久久国产免费观看| 国产小视频网站| 亚洲午夜福利精品无码不卡| 国产理论最新国产精品视频| 国产性生大片免费观看性欧美| 亚洲精品综合一二三区在线| 国产网站黄| 欧美在线网| 亚洲一区二区精品无码久久久| a级毛片在线免费观看| 亚洲男女天堂| 久久毛片网| 久久香蕉国产线看观| 91精品国产91久无码网站| 67194在线午夜亚洲| 草草线在成年免费视频2| 8090午夜无码专区| 亚洲视频三级| 国产日韩精品欧美一区灰| 国产在线小视频| 久久精品欧美一区二区| 香蕉国产精品视频| 欧美国产菊爆免费观看| 成年人国产网站| 免费毛片在线| 国产特级毛片| 精品国产自| 国产欧美网站| 国产极品美女在线| 免费女人18毛片a级毛片视频| 久久超级碰| 国产99在线| 亚洲AV成人一区二区三区AV| 九色在线观看视频| 亚洲一区二区三区在线视频| 国产自产视频一区二区三区| 中国国产高清免费AV片| 成人午夜网址| 亚洲第七页| 中文字幕有乳无码| 亚洲国产中文精品va在线播放|