SQL Server遺失管理許可權賬號密碼怎麼辦?

2021-09-07 19:24:31 字數 2624 閱讀 5748

原文:

sql server遺失管理許可權賬號密碼怎麼辦?

假如乙個sql server例項只允許

「sql身份認證

」模式登入資料庫,而糟糕的是你忘記了sa的密碼(sa出於安全考慮應該被禁用,這裡僅僅為了描述問題)或其它具有sysadmin角色的登入名的密碼?個人就遇到這樣乙個案例,hk一同事在一台測試伺服器安裝了乙個測試用途的sql server資料庫,然後這個同事離職前沒有交接這個測試伺服器任何資訊。那現在就麻煩了。我沒有任何許可權,我如何獲取sysadmin的許可權呢?或者還有比較多的場景需要你獲取資料庫的sysadmin許可權,例如你想幹點壞事.... 其實這個問題也不難,只要你有這個sql server資料庫的所在的伺服器的作業系統管理員許可權。

首先說明一下,下面指令碼在sql server 2012、2014環境下都測試過,下面來一起看看如何在只有作業系統的管理員許可權的情況下獲取資料庫的sysamdin許可權。

其實在闡述這個問題前,可能要先說一下賬號([builtin\administrators]),在sql server 2005的版本中,資料庫中[builtin\administrators]登入名預設擁有sysadmin角色,所以,如果是sql server 2005資料庫,只要你有作業系統的管理員許可權,那麼其實你就可以以windows身份認證登入資料庫(前提是伺服器允許windows身份認證登入),登入後修改sa賬號密碼即可,但是後續版本中都剔除了內建系統帳戶([builtin\administrators])。那麼通常的方法如何做呢?

其實只要你有作業系統的管理員許可權,那麼借助sqlcmd工具,很容易也很簡單就能獲取擁有sysadmin角色的賬號。

1:首先必須單使用者模式啟動sql server例項(注意,要以管理員許可權執行cmd視窗,否則可能遇到許可權問題),否則sqlcmd就會遇到類似這樣的問題

2:然後在另外乙個cmd視窗使用sqlcmd登入資料庫

c:\>
c:\>
c:\>sqlcmd -e
1> alter login sa with password='qwer123456';
2> go
1>
引數-e 表示 [-e trusted connection]預設即是-e,如上所示,進去修改sa的密碼,然後登入測試發現sa被禁用了,使用sql語句允許sa登入即可。如下所示:

當然你也可以建立乙個賬號授予sysadmin角色。完全沒有問題。

c:\>sqlcmd -e
1> create login [***\***] from windows with default_database=[master], default_language=[us_english]
2> go
1> alter server role [sysadmin] add member [***\***]
2> go
或者sql認證賬號

c:\>sqlcmd -e
1> create login [test1] with password=n'qw123456', default_database=[master], de
fault_language=[us_english], check_expiration=off, check_policy=off
2> go
1>
2>
3> alter server role [sysadmin] add member [test1]
4> go
1>
是否感覺有點太簡單了,太不安全了?  系統管理員輕鬆就獲取了資料庫的管理員許可權。 這個功能怎麼感覺都不太合理!試想,如果系統被入侵了,分分鐘就能獲取資料庫的sysadmin許可權。

SQL Server遺失管理許可權賬號密碼怎麼辦?

假如乙個sql server例項只允許 sql身份認證 模式登入資料庫,而糟糕的是你忘記了sa的密碼 sa出於安全考慮應該被禁用,這裡僅僅為了描述問題 或其它具有sysadmin角色的登入名的密碼?個人就遇到這樣乙個案例,hk一同事在一台測試伺服器安裝了乙個測試用途的sql server資料庫,然後...

TrustedInstaller管理許可權

trustedinstaller.exe實際上是 windows modules installer 這個服務的程序,路徑位於c windows servicing trustedinstaller.exe。當進行windows update,或者安裝某些微軟發布的安裝包時,windows modu...

Liunx 管理許可權

1.acl許可權 acl access control list 用來設定使用者 除所有者,所屬組,其他組之外的使用者或組 針對檔案的讀 寫 執行許可權。getfacl 檔名 檢視acl許可權 setfacl 選項 檔名 設定acl許可權選項 舉例 我們要求 root 是 acltest 目錄的屬主...