主用户意外失去了对 SQL 服务器(rds 实例)的权限
Master user lost it's permissions unexpectedly on SQL Server (rds instance)
SQL 服务器主用户意外失去权限。当我尝试访问我的数据库表时,我在 SSMS 上收到以下错误:
The SELECT permission was denied on the object 'query_store_runtime_stats', database 'mssqlsystemresource', schema 'sys'. (Microsoft SQL Server, Error: 229)
如果我尝试向主用户授予权限,在映射凭据时出现以下错误(安全 > 登录 > 主用户 > 属性):
One or more databases are inaccessible and will not be displayed in list
丢失的数据库是存储我的 tables/procedures 的数据库。最终用户也无法访问数据库。
我已尝试使用 sql 查询授予权限,但即使该权限也被禁用。
唯一能够使用该数据库的用户是我之前创建的只读用户。
我在 Amazon AWS 控制台上更改了我的主密码,但这并没有解决我的问题。
我应该怎么做才能解决这个问题?
我在联系 AWS 支持后解决了我的问题。
原因
我的问题的原因是 db_denydatawriter 和 db_denydatareader 被错误地授予了主用户。
因此,主用户对您的数据库没有 read/write 权限,当尝试授予或撤销对 SSMS 的权限时,用户映射将无法列出数据库,因为 SSMS 无法读取属性不再显示错误:
One or more databases are inaccessible and will not be displayed in list
要检查您是否已将 db_denydatawriter 或 db_denydatareader 授予您的主用户,请尝试以下操作命令:
use [YourDatabaseName]
go
sp_helpuser
更改主密码无济于事,因为这将授予 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
对我有用,希望对你有帮助!
AWS RDS SQL 服务器向主用户授予 dbower
万一您不小心撤销了权限或 post 主用户无法访问 SQL 服务器 RDS 中的还原数据库,那么唯一的选择是您从控制台重置主用户的密码。
您可能在想密码重发了??为什么 :)
我遇到了这个问题,当我从控制台重置密码时,它自动授予了对该数据库的权限。
SQL 服务器主用户意外失去权限。当我尝试访问我的数据库表时,我在 SSMS 上收到以下错误:
The SELECT permission was denied on the object 'query_store_runtime_stats', database 'mssqlsystemresource', schema 'sys'. (Microsoft SQL Server, Error: 229)
如果我尝试向主用户授予权限,在映射凭据时出现以下错误(安全 > 登录 > 主用户 > 属性):
One or more databases are inaccessible and will not be displayed in list
丢失的数据库是存储我的 tables/procedures 的数据库。最终用户也无法访问数据库。
我已尝试使用 sql 查询授予权限,但即使该权限也被禁用。
唯一能够使用该数据库的用户是我之前创建的只读用户。
我在 Amazon AWS 控制台上更改了我的主密码,但这并没有解决我的问题。
我应该怎么做才能解决这个问题?
我在联系 AWS 支持后解决了我的问题。
原因
我的问题的原因是 db_denydatawriter 和 db_denydatareader 被错误地授予了主用户。
因此,主用户对您的数据库没有 read/write 权限,当尝试授予或撤销对 SSMS 的权限时,用户映射将无法列出数据库,因为 SSMS 无法读取属性不再显示错误:
One or more databases are inaccessible and will not be displayed in list
要检查您是否已将 db_denydatawriter 或 db_denydatareader 授予您的主用户,请尝试以下操作命令:
use [YourDatabaseName]
go
sp_helpuser
更改主密码无济于事,因为这将授予 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
对我有用,希望对你有帮助!
AWS RDS SQL 服务器向主用户授予 dbower
万一您不小心撤销了权限或 post 主用户无法访问 SQL 服务器 RDS 中的还原数据库,那么唯一的选择是您从控制台重置主用户的密码。
您可能在想密码重发了??为什么 :)
我遇到了这个问题,当我从控制台重置密码时,它自动授予了对该数据库的权限。