adm*_*iri 4 sql-server amazon-web-services amazon-rds
SQL Server 主用户意外失去了他的权限。当我尝试访问我的数据库表时,我在 SSMS 上收到以下错误:
对象“query_store_runtime_stats”、数据库“mssqlsystemresource”、架构“sys”的 SELECT 权限被拒绝。(Microsoft SQL Server,错误:229)
如果我尝试向主用户授予权限,则在映射凭据(安全 > 登录 > Masteruser > 属性)时会出现以下错误:
一个或多个数据库无法访问且不会显示在列表中
丢失的数据库是存储我的表/过程的数据库。最终用户也无法访问数据库。
我曾尝试使用 sql 查询授予权限,但即使该权限也被禁用。
唯一能够使用该数据库的用户是我之前创建的只读用户。
我在 Amazon AWS 控制台上更改了主密码,但这并没有解决我的问题。
我应该怎么做才能解决这个问题?
联系 AWS 支持后,我能够解决我的问题。
原因
我的问题的原因是db_denydatawriter和db_denydatareader被错误地授予主用户。
因此,主用户对您的数据库没有读/写权限,当尝试授予或撤销对 SSMS 的权限时,用户映射将无法列出数据库,因为 SSMS 无法再读取属性并将显示错误:
一个或多个数据库无法访问且不会显示在列表中
要检查您是否已将db_denydatawriter或db_denydatareader授予您的主用户,请尝试以下命令:
use [YourDatabaseName]
go
sp_helpuser
Run Code Online (Sandbox Code Playgroud)
更改主密码无济于事,因为这将授予 db_owner 权限,但不会删除拒绝权限。
解决方案
使用以下命令删除拒绝权限:
USE [database-name]
GO
ALTER ROLE [db_denydatareader] DROP MEMBER [master-user-name]
GO
ALTER ROLE [db_denydatawriter] DROP MEMBER [master-user-name]
GO
Run Code Online (Sandbox Code Playgroud)
它对我有用,希望它有所帮助!
小智 5
AWS RDS SQL Server 将 dbower 授予主用户
如果您不小心撤销了权限或恢复后数据库无法被 SQL Server RDS 中的主用户访问,那么唯一的选择是从控制台重置主用户的密码。
你可能在想密码重发了??为什么 :)
我遇到了这个问题,当我从控制台重置密码时,它会自动授予此数据库的权限。
| 归档时间: |
|
| 查看次数: |
3660 次 |
| 最近记录: |