Sql-Server

SQL Server 2016 Express,需要添加對數據庫具有管理員訪問權限的帳戶

  • May 5, 2020

使用新的 SQL Server 2016 Express 安裝。我載入了 SSMS 並擁有對實例的管理員訪問權限。供應商為一個新應用程序提供了一個數據庫,該應用程序在數據庫的安全性中定義了他們的應用程序只有幾個內部帳戶。此時我只有對數據庫的公共訪問權限——我可以查看屬性,但不能將帳戶添加到數據庫中。

有沒有辦法將我的管理員帳戶添加到此數據庫的安全性以獲得管理員訪問權限?SQL 停機時間不是問題。我進行了一些搜尋,發現了一些重新獲得對實例的訪問權限的點擊,但沒有找到任何在數據庫級別添加新帳戶的地址。

我終於獲得了使用 PsExec 實用程序以管理員身份執行 SSMS 對 SQL 數據庫的管理員訪問權限。我第一次嘗試時犯了一個錯誤-缺少的部分是我需要以管理員身份打開命令視窗(右鍵點擊,以管理員身份執行)。將下面的路徑替換為 SSMS 18.5 執行檔所在的路徑。右鍵點擊 SSMS 快捷方式並查看屬性以找到它。

SSMS 啟動後,我發現我可以添加任何我想要的帳戶。但是……我沒有一個完全幸福的結局:我發現供應商的新軟體版本正在加密表格中的一些關鍵文本列。除非我能弄清楚(哈,對),否則我無法使用我之前為先前版本編寫的報告腳本。該應用程序的內置報告非常糟糕。

感謝大家的回复。我希望這對其他人有幫助。

PsExec -s -i "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe"

如果您是 Windows 管理員,請按照此處記錄的過程進行操作。

或者簡單地從 SQL Server 上提升的命令提示符執行此腳本:

net stop mssql$sqlexpress 
net start mssql$sqlexpress /mSQLCMD 
sqlcmd -S (local)\sqlexpress -Q "if not exists(select * from sys.server_principals where name='BUILTIN\administrators') CREATE LOGIN [BUILTIN\administrators] FROM WINDOWS;EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\administrators', @rolename = N'sysadmin'" 
net stop mssql$sqlexpress
net start mssql$sqlexpress
sqlcmd -S (local)\sqlexpress -Q "if exists( select * from fn_my_permissions(NULL, 'SERVER') where permission_name = 'CONTROL SERVER') print 'You are a sysadmin.'"

來源

引用自:https://dba.stackexchange.com/questions/266251