新聞中心
在進行數(shù)據(jù)庫管理工作時,創(chuàng)建和管理數(shù)據(jù)庫對象登錄名是非常重要的一部分。登錄名作為數(shù)據(jù)庫對象的標識符,可以控制用戶對數(shù)據(jù)庫的訪問權限,同時也可以保證數(shù)據(jù)庫的安全性。本文將為大家介紹,以便更好地進行數(shù)據(jù)庫管理工作。

成都創(chuàng)新互聯(lián)專注于孝昌企業(yè)網(wǎng)站建設,響應式網(wǎng)站開發(fā),商城網(wǎng)站開發(fā)。孝昌網(wǎng)站建設公司,為孝昌等地區(qū)提供建站服務。全流程定制網(wǎng)站開發(fā),專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務
1. 創(chuàng)建數(shù)據(jù)庫對象登錄名
創(chuàng)建數(shù)據(jù)庫對象登錄名的步驟如下:
(1)打開SQL Server Management Studio,選擇需要創(chuàng)建登錄名的數(shù)據(jù)庫,右鍵單擊“安全性”,選擇“新建登錄名”;
(2)在彈出的“新建登錄名”窗口中,輸入登錄名、選擇登錄名的類型(Windows登錄名或SQL Server登錄名)等信息;
(3)為登錄名設置密碼,并設置密碼策略,以確保密碼安全;
(4)為登錄名分配服務器角色和數(shù)據(jù)庫角色,以控制其對服務器和數(shù)據(jù)庫的訪問權限;
(5)點擊“確定”完成創(chuàng)建。
2. 管理數(shù)據(jù)庫對象登錄名
管理數(shù)據(jù)庫對象登錄名需要對已有登錄名進行以下操作:
(1)修改登錄名密碼。在SQL Server Management Studio中,右鍵單擊需要修改密碼的登錄名,選擇“屬性”,在“常規(guī)”選項卡中修改密碼;
(2)重置登錄名密碼。當?shù)卿浢麩o法登錄或忘記密碼時,可以通過重置密碼來恢復登錄名的使用權。在SQL Server Management Studio中,右鍵單擊需要重置密碼的登錄名,選擇“重置密碼”;
(3)禁用登錄名。通過禁用登錄名可以暫時性地控制其對數(shù)據(jù)庫的訪問權限。在SQL Server Management Studio中,右鍵單擊需要禁用的登錄名,選擇“屬性”,在“常規(guī)”選項卡中勾選“賬戶已禁用”選項;
(4)刪除登錄名。當用戶停止使用或權限被收回時,可以刪除該用戶的登錄名。在SQL Server Management Studio中,右鍵單擊需要刪除的登錄名,選擇“刪除”。
3. 更佳實踐
創(chuàng)建和管理數(shù)據(jù)庫對象登錄名時,需要遵循以下更佳實踐:
(1)使用復雜密碼。密碼應至少包含8個字符,包括大寫字母、小寫字母、數(shù)字和特殊字符;
(2)為每個登錄名分配最小必需的權限。不要將過多的權限分配給每個登錄名,以免用戶越權操作數(shù)據(jù)庫;
(3)定期修改密碼。建議每3個月修改一次密碼以確保賬戶安全;
(4)限制登錄名的失敗登錄次數(shù)。如果登錄名在一定時間內(nèi)多次失敗登錄,建議暫時性地禁用該賬戶,以保證數(shù)據(jù)庫的安全性;
(5)定期審計登錄名。通過定期審計登錄名的使用情況,可以更好地發(fā)現(xiàn)安全風險和異常情況。
創(chuàng)建和管理數(shù)據(jù)庫對象登錄名是數(shù)據(jù)庫管理工作中非常重要的一部分。通過本文的介紹,我們了解到了,以及如何遵循更佳實踐來保證賬戶的安全性。希望大家能夠在數(shù)據(jù)庫管理工作中更加高效地進行登錄名的創(chuàng)建和管理。
相關問題拓展閱讀:
- 與SQL SERVER 安全控制相關的幾點說明
與SQL SERVER 安全控制相關的幾點說明
與SQL SERVER安全控制相關的幾點說明
(一)幾個基本術語
身份驗證(Authentication)是指通過提交服務器評估的憑據(jù)以登錄到主體請求訪問的 SQL Server 的過程。身份驗證可以確定接受身份驗證的用戶或進程的標識。
用戶、賬戶、賬號、登錄名、用戶名
用戶是指能夠在SQL Server安全機制下,訪問數(shù)據(jù)庫對象中的數(shù)據(jù)的操作員或客戶。用戶若要訪問數(shù)據(jù)庫對象,必須獲得數(shù)據(jù)庫管理員(DBA)分配的賬號和密碼。從SQL Server管理系統(tǒng)的角度來看,用戶就是一組匹配的賬戶和密碼。
賬戶和賬號是一個概念的不同搏亂說法,在服務器中的賬戶又叫登錄名(Login Name),因此訪問服務器也稱為登錄服務器。服務器的登錄名可以映射到數(shù)據(jù)庫中成為用戶基亂檔名(User Name)。一個登錄名可以映射多個數(shù)據(jù)庫用戶,而一個用戶只能映射一個登錄名。
連接或登錄SQL Server服務器時是用的登錄名而非用戶名登錄的,程序里面的連接字符串中的用戶名也是指登錄名。
通常用戶名與登錄名相同(不是強制相同,但為了一目了然通常都在創(chuàng)建用戶名時使用與登錄名相同的名字)。
提示:登錄名(Login Name)和用戶名(User Name)是兩個不同的概念:
登錄名:服務器方的一個實體,登錄名只能進入SQL Server服務器,但是不能讓用戶訪問服務器中的數(shù)據(jù)庫資源。
用戶名:一個或多個登錄對象在數(shù)據(jù)庫中的映射,可以對用戶對象進行授權,以便為登錄對象提供對數(shù)據(jù)庫的訪問權限。
登錄名作用于它所在的服務器。每個登錄名的定義存放在master系統(tǒng)數(shù)據(jù)庫的syslogins表中。
用戶名作用于它所在的數(shù)據(jù)庫。用戶定義信息存放在每個數(shù)據(jù)庫的sysusers表中。用登錄名登錄到SQL Server后,在訪問操作各個數(shù)據(jù)庫時,SQL Server會自動查詢此數(shù)據(jù)庫中是否存在與此登錄名關聯(lián)的用戶名,若存在就使用此用戶的權限訪問此數(shù)據(jù)庫,若不存在就是用guest用戶訪問此數(shù)據(jù)庫(guest是一個特殊的用戶名,后面會講到)。
SQL身份驗證:適合于非windows平臺的用戶或Internet用戶,需要提供賬戶和密碼。
Windows身份驗證:適合于windows平臺用戶,利用Windows賬戶和windows集成驗證,不需要提供密碼。
用戶想要操作數(shù)據(jù)庫的某個對象(如某張表)需要過三關:
之一關:我們需要登錄到SQL Server系統(tǒng),即需要登錄賬戶;
第二關:我們需要訪問某個數(shù)據(jù)庫,即陪檔需要該數(shù)據(jù)庫的用戶賬戶;
第三關:我們需要訪問數(shù)據(jù)庫中的某個對象(如某張表),需要有該對象的權限。
主體(principal)是可被授予對安全資源的訪問權限的實體(例如登錄名、用戶、進程、組或角色)。主體可以是主體的(比如數(shù)據(jù)庫角色或Windows組)或不可分割的主體(比如本地登錄或域登錄)。每個主體都具有一個 ID (identification)和一個安全 ID (SID)。
⊙ Windows級別的主體:Windows組、Windows域登錄名、Windows本地登錄名。
⊙ SQL Server級的主體:服務器角色、SQLServer登錄名。
⊙數(shù)據(jù)庫級的主體:數(shù)據(jù)庫角色、數(shù)據(jù)庫用戶、應用程序角色。
上下文切換 (context switch),更改檢查執(zhí)行語句或執(zhí)行操作的權限時所依據(jù)的標識。
服務器(server)
1)指安裝了SQL SERVER的計算機。2)指SQL Server實例——計算機上運行的 SQLServer的副本。3)指為用戶提供服務的計算機軟件或組件。
需要根據(jù)上下文理解。
注冊服務器
注冊服務器使您可以存儲服務器連接信息(服務器的類型、服務器的名稱、登錄到服務器時使用的身份驗證的類型等),以供將來連接時使用——下次連接該服務器時,不需要重新輸入登錄信息。
SQLServer 2023在SQL Server企業(yè)管理器中注冊服務器,才能使用 SQL Server企業(yè)管理器來管理這些服務器。從SQLServer 2023始,在 SQL ServerManagement Studio 中注冊服務器,才能使用 SQL Server Management Studio 來管理這些服務器。
在 Microsoft SQL Server中,可以注冊以下類型的服務器:SQLServer數(shù)據(jù)庫引擎、Analysis Services、Reporting Services、IntegrationServices和 SQL Server Compact 3.5SP1。
(二)SQL Server實例(SQL Server instance)
SQLServer實例(SQL Server instance),簡稱實例 (instance),是計算機上運行的SQLServer 的副本。同一臺計算機上可以安裝運行的多個 SQLServer副本。每個SQL Server實例都包含數(shù)據(jù)庫引擎、Analysis Services和 ReportingServices的 SQL Server,每個SQL Server數(shù)據(jù)庫實例各有一套不為其他實例共享的系統(tǒng)及用戶數(shù)據(jù)庫。
數(shù)據(jù)庫引擎是用于存儲、處理和保護數(shù)據(jù)的核心服務。利用數(shù)據(jù)庫引擎可控制訪問權限并快速處理事務。
實例又分為“默認實例”(default instance)和“命名實例”(namedinstance),如果在一臺計算機上安裝之一個SQLSERVER,命名設置保持默認的話,那這個實例就是默認實例。默認實例與安裝計算機具有相同名稱。命名實例指安裝SQL Server時給定了名稱,可以安裝多個命名實例,給定名稱是為了與同一臺計算機上的其他命名實例和默認實例區(qū)分開。
SQLServer應用程序可以通過僅指定服務器名稱而連接到 SQLServer的默認實例。SQL Server應用程序在連接到服務器上的某個命名實例時必須既指定服務器名稱又指定實例名稱,計算機名稱\實例名稱。
一臺計算機上最多只有一個默認實例,也可以沒有默認實例,默認實例名與計算機名相同。如果要訪問本機上的默認SQL服務器實例,使用計算機名、(local)、localhost、127.0.0.1、.、本機IP地址,都可以達到相同的目的。但如果要訪問非本機的SQL服務器,那就必須使用計算機名稱\實例名稱。
默認實例和命名實例的區(qū)別:
1、服務中服務名稱的區(qū)別:
(1)默認實例:MSSQLSERVER。
(2)有名命名實例:實列名為benet,在服務中的名稱是MSSQL$BENET。
注:如果你有多個實例的時候會在服務中出現(xiàn)多個服務名稱。
2、連接到查詢分析器或探查器的時候區(qū)別:
(1)默認實例可以使用:“.”(點)、“(local)”、“計算機名稱”。
(2)實例名稱:計算機名pcname,實例名benet,連接時使用的名稱是pcname\benet。
(三)安全對象和權限
安全對象(Securable),可以通過權限得到保護的實體。是SQLServer數(shù)據(jù)庫引擎授權系統(tǒng)控制對其進行訪問的資源。如表、視圖、觸發(fā)器等。
SQLServer中將安全對象分為三個層次,分別為:
⊙服務器層級,包含的安全對象:端點、登錄、服務器角色、數(shù)據(jù)庫。
⊙數(shù)據(jù)庫層級,包含的安全對象:用戶、數(shù)據(jù)庫角色、應用程序角色、程序集、消息類型、路由、服務、遠程服務綁定、全文目錄、證書、非對稱密鑰、對稱密鑰、約定、架構。
⊙構架(SCHEMA)層級,包含的安全對象:類型、XML架構、對象(函數(shù)、過程、同義詞、表、視圖)
這三個層級是從上到下包含的,級別從高到低。
說明:端點(endpoint)為服務器級安全對象。Microsoft SQL Server 2023 中的連接管理基于“端點”。一個端點就是一個SQL Server對象,它能夠使 SQL Server在網(wǎng)絡中通信。對于數(shù)據(jù)庫鏡像,服務器實例需要有自己專用的“數(shù)據(jù)庫鏡像端點”。此端點用途特殊,專門用于接收來自其他服務器實例的數(shù)據(jù)庫鏡像連接。
權限 (permission),與對象關聯(lián)的規(guī)則,用來規(guī)定哪些用戶可以獲得該對象的訪問權限以及方式如何。對安全對象的訪問通過授予或拒絕權限進行控制。
權限可以明確用戶能夠使用哪些數(shù)據(jù)庫對象,并對它們進行何種操作。用戶在數(shù)據(jù)庫內(nèi)的權限取決于用戶賬號的權限和該用戶所屬的角色的權限。
提示:在設置權限時,尤其要注意權限在安全對象上的繼承關系。對于高級別安全對象上設置的權限,會被自動繼承到低級別安全對象上。
理解權限的繼承和權限的覆蓋會在設置權限時減少很多問題,更佳方法是統(tǒng)籌規(guī)劃,上機驗證。
(四)架構(schema)
架構是指包含表、視圖、過程等的容器。它位于數(shù)據(jù)庫內(nèi)部,而數(shù)據(jù)庫位于服務器內(nèi)部。這些實體就像嵌套框放置在一起。服務器是最外面的框,而架構是最里面的框。架構包含表、視圖、過程、函數(shù)、同義詞、類型、隊列、XML架構等安全對象。
注意:
在 SQL Server 2023和早期版本中,數(shù)據(jù)庫可以包含一個名為“架構”的實體, SQL Server 2023包含 CREATE SCHEMA語句,但此實體實際上是所有者(創(chuàng)建對象時的用戶)。在 SQL Server 2023 開始,架構既是一個容器,又是一個命名空間。任何用戶都可以擁有架構,并且架構所有權可以轉移。從 SQL Server 2023開始,每個用戶都擁有一個默認架構。可以使用 CREATE USER或 ALTER USER的 DEFAULT_SCHEMA選項設置和更改默認架構。如果未定義 DEFAULT_SCHEMA,則數(shù)據(jù)庫用戶將使用 dbo作為默認架構。
在SQL Server 2023中,DataBaseName.dbo.TableName解釋為:數(shù)據(jù)庫名.所有者.表名。
從 SQL Server 2023開始,DataBaseName.dbo.TableName解釋為:數(shù)據(jù)庫名.架構名.表名。
在SQL Server 2023中,數(shù)據(jù)庫對象全稱是server_name…object_name
從SQL Server 2023始,數(shù)據(jù)庫對象全稱是server_name…object_name
在SQL SERVER2023或以前版本中創(chuàng)建一個對象,對象必須要有一個所有者(owner)。對象是如何屬于某個所有者的呢?這依賴于創(chuàng)建對象時的用戶。您不能取消對象所有者(object owner)的特權(privileges)。對象所有者可以執(zhí)行任何與對象有關的操作(例如 INSERT、UPDATE、DELETE、SELECT或 EXECUTE),也可以管理對象的權限。
從2023/2023后,一個我們必須重新認識的情況是對象不再有所有者(owner)。架構包含對象,架構有所有者。
在2023前(如SQL Server 2023中),沒有架構的概念,只有用戶的概念,那時候DBO是默認用戶。到了2023,有了架構概念,但是為了向后兼容,保留了DBO,并且把DBO作為默認架構,在不指定架構的情況下,默認為dbo,“默認架構”的概念,用于解析未使用其完全限定名稱引用的對象的名稱。在 SQL Server 2023 中,每個用戶都有一個默認架構,用于指定服務器在解析對象的名稱時將要搜索的之一個架構。可以使用 CREATE USER和 ALTER USER的 DEFAULT_SCHEMA選項設置和更改默認架構。如果未定義 DEFAULT_SCHEMA,則數(shù)據(jù)庫用戶將把 DBO作為其默認架構。
(五)dbo
dbo既是默認架構,也是默認用戶。在SQL Server 2023中,dbo作為默認用戶。在SQL Server2023中,dbo既作為默認用戶,也作為默認架構(如圖)。
dbo作為默認用戶,dbo (DataBase Owner,數(shù)據(jù)庫的所有者,擁有數(shù)據(jù)庫中的所有對象),每個數(shù)據(jù)庫都有dbo, sysadmin服務器角色的成員自動映射成dbo,無法刪除 dbo用戶,且此用戶始終出現(xiàn)在每個數(shù)據(jù)庫中。通常,登錄名sa映射為庫中的用戶dbo。另外,固定服務器角色 sysadmin的任何成員都映射到每個數(shù)據(jù)庫內(nèi)稱為 dbo的一個特殊用戶上。由固定服務器角色sysadmin的任何成員創(chuàng)建的任何對象都自動屬于 dbo。由固定服務器角色 sysadmin的任何成員或 dbo用戶創(chuàng)建的任何對象都自動屬于dbo,由任何其他用戶(包括 db_owner固定數(shù)據(jù)庫角色成員)創(chuàng)建的對象,屬于創(chuàng)建該對象的用戶,而不是 dbo,用創(chuàng)建該對象的用戶名限定。例如:
如果用戶 Andrew是固定服務器角色sysadmin的成員,并創(chuàng)建表 T1,則表 T1屬于 dbo,并以 dbo.T1而不是 Andrew.T1進行限定。相反,如果 Andrew不是固定服務器角色sysadmin的成員,而只是固定數(shù)據(jù)庫角色 db_owner的成員,并創(chuàng)建表 T1,則 T1屬于 Andrew,并限定為Andrew.T1。該表屬于 Andrew,因為該成員沒有將表限定為dbo.T1。
dbo作為默認架構,在不指定架構的情況下,默認為dbo,“默認架構”的概念,用于解析未使用其完全限定名稱引用的對象的名稱。在 SQL Server 2023 中,每個用戶都有一個默認架構,用于指定服務器在解析對象的名稱時將要搜索的之一個架構??梢允褂?CREATE USER和 ALTER USER的 DEFAULT_SCHEMA選項設置和更改默認架構。如果未定義 DEFAULT_SCHEMA,則數(shù)據(jù)庫用戶將把 DBO作為其默認架構。
(六)Guest用戶
guest用戶不需要映射到登錄名。這種用戶賬號是供數(shù)據(jù)庫中沒有明確授予權限給已映射至認證用戶使用的。guest供那些已經(jīng)成功登錄到SQL SERVER實例,但是卻沒有通過用戶訪問數(shù)據(jù)庫的權限的登錄者使用的。
SQLSERVER 2023中guest用戶可以刪除;而2023/2023中是不能刪除的,卻可以取消CONNECT權限,而且為安全起見,所有用戶定義的數(shù)據(jù)庫中缺省情況下guest用戶的權限都是被取消了的,可在除master和tempdb之外的任何數(shù)據(jù)庫中禁用Guest用戶。
在SQL SERVER 2023中,新建的數(shù)據(jù)庫中沒有Guest用戶,但可以添加它,也可刪除它,添加與刪除方法與普通數(shù)據(jù)庫相同。
在SQL Server 2023或以上版本中GUEST已經(jīng)默認存在于每個數(shù)據(jù)庫中,但默認情況下,會在新數(shù)據(jù)庫中禁用GUEST用戶(在“對象資源管理器→安全性→登錄”節(jié)點中圖標上有禁用標識),我們可以通過以下語句啟用GUEST用戶:GRANT CONNECT TO GUEST 。當你決定不再想讓該數(shù)據(jù)庫被非數(shù)據(jù)庫授權的用戶以GUEST身份進行訪問時,可以再次將GUEST帳號禁用。值得一提的是,GUEST用戶在數(shù)據(jù)庫中不能被刪除,我們只能通過以下語句禁用GUEST用戶:REVOKE CONNECT FROMGUEST 。
在SQL SERVER 2023中,要允許guest用戶帳戶訪問數(shù)據(jù)庫,可以像添加其它數(shù)據(jù)庫用戶那樣添加它,如:
USE
GO
EXECsp_grantdbaccess ‘guest’
GO
在SQL SERVER 2023中,允許guest用戶帳戶
USE
GO
GRANT CONNECT TO GUEST
GO
需要提醒的是,對于是否添加Guest用戶要謹慎權衡利弊。
–SQLServer 2023刪除guest用戶賬號
USE
GO
EXECsp_revokedbaccess ‘guest’
GO
— SQLServer 2023禁用guest用戶賬號
USE
GO
REVOKECONNECT FROM GUEST
GO
(七)sa登錄名
SQLServer的 sa登錄名是服務器級的主體。默認情況下,該登錄名是在安裝實例時創(chuàng)建的。在 SQL Server 2023和 SQL Server2023中,sa的默認數(shù)據(jù)庫為 master。這是對早期版本的 SQLServer的行為的更改。
sa(system administrator系統(tǒng)管理員)是為向后兼容而提供的特殊登錄。sysadmin是一種角色。該角色能夠執(zhí)行SQLServer上的任何操作。本質(zhì)上,任何具有這種角色成員身份的人都是那個服務器上的sa。這種服務器角色的創(chuàng)建為微軟提供了某一天去除sa登錄的能力——實際上,聯(lián)機叢書把sa稱作本質(zhì)上為遺留物的東西。
與以前版本不同,SQL Server 2023,即使是用混合模式安裝,sa也默認禁用。
注意,sa是一個默認的SQL Server登錄名,擁有操作SQL Server系統(tǒng)的所有權限,該登錄名不能被刪除。當采用混合模式安裝Microsoft SQL Server系統(tǒng)之后,應該為sa指定一個密碼,應為 sa登錄分配一個強密碼(strongpassword)。
sa登錄名會映射到 sysadmin固定服務器角色,它對整個服務器有不能撤銷的管理憑據(jù)。如果攻擊者以系統(tǒng)管理員的身份獲取了訪問權限,則可能造成的危害是無法預計的。
(八)其它幾個默認配置的的登錄(Logins)和用戶(Users)
默認配置的的登錄和用戶除了dbo用戶、Guest用戶、sa登錄,還有如下幾個:
Administrators組是一個特殊的登錄。administrator用戶默認administrators組的成員。
Administrators組實際名稱為BUILTIN\Administrators。早期版本,這個組的所有成員均為 sysadmin 角色的成員(這意味著Administrators組中的成員具有更高權限),但可以從該角色中移除這些成員。與以前版本不同,SQL Server 2023默認情況下,本地 Windows組 BUILTIN\Administrators不再包含在新的 SQL Server 2023安裝上的 SQL Server的 sysadmin固定服務器角色中。
提示:每個版本的 SQL Server都具有不同的安全功能,默認配置也不盡相同,后出的版本更有利于安全,但安全性和使用方便這兩種需求可能有矛盾的一面,更佳方法是上機了解驗證。
NETWORKSERVICE和SYSTEM登錄賬戶
NETWORKSERVICE和SYSTEM登錄賬戶,實際名稱為NT AUTHORITY\NETWORK SERVICE和NT AUTHORITY\SYSTEM,是否存在這些,依賴于服務器的配置。如果配置了報表服務器,將出現(xiàn)NETWORK SERVICE登錄賬戶。
INFORMATION_SCHEMA和sys用戶
INFORMATION_SCHEMA和sys又是SQL Server 預定義的架構(內(nèi)置架構)名稱,它們與INFORMATION_SCHEMA和sys用戶具有相同的名稱。不能刪除,主要用于向后兼容性??梢允褂肐NFORMATION_SCHEMA用戶和sys用戶訪問INFORMATION_SCHEMA和sys架構的系統(tǒng)視圖,獲取有關數(shù)據(jù)庫元數(shù)據(jù)信息。
(九)SQL Server中的角色
角色 (role),是SQL Server用來管理服務器和數(shù)據(jù)庫權限的,是安全帳戶的,在管理權限時可以視為一個單元——作為分配權限的單位。
SQLServer中的角色分為服務器級別和數(shù)據(jù)庫級別角色。
◇服務器級別角色
服務器級別角色用于幫助管理服務器上的權限。服務器角色的權限作用域為服務器范圍??梢詫⒌卿浢↙ogin Name)添加到服務器角色。
符合權限要求的用戶,可以將服務器級主體(SQL Server登錄名、Windows帳戶和 Windows組)添加到服務器級角色。固定服務器角色的每個成員都可以將其他登錄名添加到該同一角色。
固定服務器角色簡介:
1)sysadmin:系統(tǒng)管理員,角色成員可對SQLServer服務器進行所有的管理工作,為更高管理角色。這個角色一般適合于數(shù)據(jù)庫管理員(DBA)。
2)securityadmin:安全管理員,角色成員可以管理登錄名及其屬性??梢允谟琛⒕芙^、撤銷服務器級和數(shù)據(jù)庫級的權限。另外還可以重置SQL Server登錄名的密碼。
3)serveradmin:服務器管理員,角色成員具有對服務器進行設置及關閉服務器的權限。
4)setupadmin:設置管理員,角色成員可以添加和刪除鏈接服務器,并執(zhí)行某些系統(tǒng)存儲過程。
5)processadmin:進程管理員,角色成員可以終止SQLServer實例中運行的進程。
6)diskadmin:用于管理磁盤文件。
7)dbcreator:數(shù)據(jù)庫創(chuàng)建者,角色成員可以創(chuàng)建、更改、刪除或還原任何數(shù)據(jù)庫。
8)bulkadmin:可執(zhí)行BULK INSERT語句,但是這些成員對要插入數(shù)據(jù)的表必須有INSERT權限。BULK INSERT語句的功能是以用戶指定的格式復制一個數(shù)據(jù)文件至數(shù)據(jù)庫表或視圖。
9)在sql server 2023 sp2(補?。┘耙院蟀姹荆掌鹘巧羞€可以看到一個public角色。每個 SQL Server登錄名均屬于 public服務器角色。 如果未向某個服務器主體授予或拒絕對某個安全對象的特定權限,該用戶將繼承授予該對象的 public角色的權限。public服務器角色默認擁有 VIEW ANY DATABASE(查看任何數(shù)據(jù)庫)權限。
從 SQL Server 2023開始,您可以創(chuàng)建用戶定義的服務器角色,并將服務器級權限添加到用戶定義的服務器角色。
每個版本的 SQL Server都具有不同的安全功能,版本越高,功能越強。
可以利用系統(tǒng)函數(shù)IS_SRVROLEMEMBER指示當前用戶的 SQLServer登錄名是否是固定服務器角色的成員。
可以利用系統(tǒng)存儲過程sp_helpsrvrolemember返回有關 SQL Server 固定服務器角色成員的信息。
–查詢 sysadmin固定服務器角色的成員。
execsp_helpsrvrolemember ‘sysadmin’
◇數(shù)據(jù)庫級別的角色
數(shù)據(jù)庫級別角色用于幫助管理數(shù)據(jù)庫中的權限。數(shù)據(jù)庫級角色的權限作用域為數(shù)據(jù)庫范圍。可以將用戶名(User Name)添加到數(shù)據(jù)庫角色。
SQLServer中有兩種類型的數(shù)據(jù)庫級角色:數(shù)據(jù)庫中預定義的“固定數(shù)據(jù)庫角色”和您可以創(chuàng)建的“靈活數(shù)據(jù)庫角色”(自定義數(shù)據(jù)庫角色)。
固定數(shù)據(jù)庫角色是在數(shù)據(jù)庫級別定義的,并且存在于每個數(shù)據(jù)庫中。 db_owner和db_securityadmin數(shù)據(jù)庫角色的成員可以管理固定數(shù)據(jù)庫角色成員身份。但是,只有db_owner數(shù)據(jù)庫角色的成員能夠向db_owner固定數(shù)據(jù)庫角色中添加成員。 msdb數(shù)據(jù)庫中還有一些特殊用途的固定數(shù)據(jù)庫角色。
符合權限要求的用戶,可以向數(shù)據(jù)庫級角色中添加數(shù)據(jù)庫帳戶和其他 SQL Server角色。固定數(shù)據(jù)庫角色的每個成員都可向同一個角色添加其他登錄名。
固定數(shù)據(jù)庫角色簡介:
1)db_owner:數(shù)據(jù)庫所有者,這個數(shù)據(jù)庫角色的成員可執(zhí)行數(shù)據(jù)庫的所有管理操作。
2)db_accessadmin:數(shù)據(jù)庫訪問權限管理者,角色成員具有添加、刪除數(shù)據(jù)庫使用者、數(shù)據(jù)庫角色和組的權限。
3)db_securityadmin:數(shù)據(jù)庫安全管理員,角色成員可管理數(shù)據(jù)庫中的權限,如設置數(shù)據(jù)庫表的增加、刪除、修改和查詢等存取權限。
4)db_ddladmin:數(shù)據(jù)庫DDL管理員,角色成員可增加、修改或刪除數(shù)據(jù)庫中的對象。
5)db_backupoperator:數(shù)據(jù)庫備份操作員,角色成員具有執(zhí)行數(shù)據(jù)庫備份的權限。
6)db_datareader:數(shù)據(jù)庫數(shù)據(jù)讀取者,角色成員可以從所有用戶表中讀取數(shù)據(jù)。
7)db_datawriter:數(shù)據(jù)庫數(shù)據(jù)寫入者,角色成員具有對所有用戶表進行增加、刪除、修改的權限。
8)db_denydatareader:數(shù)據(jù)庫拒絕數(shù)據(jù)讀取者,角色成員不能讀取數(shù)據(jù)庫中任何表的內(nèi)容。
9)db_denydatawriter:數(shù)據(jù)庫拒絕數(shù)據(jù)寫入者,角色成員不能對任何表進行增加、刪修、修改操作。
10)public:是一個特殊的數(shù)據(jù)庫角色,每個數(shù)據(jù)庫用戶都是public角色的成員,因此不能將用戶、組或角色指派為public角色的成員,也不能刪除public角色的成員。public數(shù)據(jù)庫角色默認的權限很少。
可以利用系統(tǒng)函數(shù)IS_MEMBER檢查當前用戶是否是數(shù)據(jù)庫角色或Windows域組的成員。
可以利用系統(tǒng)存儲過程sp_helprolemember顯示數(shù)據(jù)庫角色的成員。
可以利用系統(tǒng)存儲過程sp_helpuser報告有關當前數(shù)據(jù)庫中數(shù)據(jù)庫級主體的信息。
可以利用系統(tǒng)存儲過程sp_helprotect報告當前數(shù)據(jù)庫中某對象的用戶權限或語句權限的信息。
–查詢用戶擁有的數(shù)據(jù)庫角色
useyourdb
execsp_helpuser ‘UserName’
go
–查詢用戶被賦予的權限
useyourdb
數(shù)據(jù)庫對象登錄名的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關于數(shù)據(jù)庫對象登錄名,如何創(chuàng)建和管理數(shù)據(jù)庫對象登錄名,與SQL SERVER 安全控制相關的幾點說明的信息別忘了在本站進行查找喔。
創(chuàng)新互聯(lián)成都網(wǎng)站建設公司提供專業(yè)的建站服務,為您量身定制,歡迎來電(028-86922220)為您打造專屬于企業(yè)本身的網(wǎng)絡品牌形象。
成都創(chuàng)新互聯(lián)品牌官網(wǎng)提供專業(yè)的網(wǎng)站建設、設計、制作等服務,是一家以網(wǎng)站建設為主要業(yè)務的公司,在網(wǎng)站建設、設計和制作領域具有豐富的經(jīng)驗。
文章題目:如何創(chuàng)建和管理數(shù)據(jù)庫對象登錄名(數(shù)據(jù)庫對象登錄名)
當前地址:http://m.fisionsoft.com.cn/article/dpdspcc.html


咨詢
建站咨詢
