gpt4 book ai didi

sql - Service Broker 和数据库所有权不匹配

转载 作者:行者123 更新时间:2023-12-04 18:44:22 27 4
gpt4 key购买 nike

我有一个 SQL Server 2008 R2 实现,并为在同一个机器上运行的 .Net/IIS 网站打开了 Service Broker。

当 global.asax application_startup 事件触发时它不会抛出错误,但是事件日志每秒都会被垃圾邮件发送:

[dbo].[SqlQueryNotificationStoredProcedure-e6946263-93b8-445e-9d92-6fbd49a4b089]' running on queue 'XXXXXX.dbo.SqlQueryNotificationService-e6946263-93b8-445e-9d92-6fbd49a4b089' output the following: 'The database owner SID recorded in the master database differs from the database owner SID recorded in database 'XXXXXXX'. You should correct this situation by resetting the owner of database 'XXXXXXX' using the ALTER AUTHORIZATION statement.'

此外,Service Broker 没有正确发送消息(对于 SqlCacheDependency)- 它基本上不起作用。

我运行了以下查询并确定所有权不匹配:

SELECT
SUSER_SNAME(d.owner_sid) AS OwnerName
,d.owner_sid AS OwnerSID
,dp.sid AS DboUserSID
,SUSER_SNAME(dp.sid) AS DboUserMapping
FROM sys.databases AS d
JOIN sys.database_principals AS dp ON
dp.name = 'dbo'
WHERE d.database_id = DB_ID();

OwnerName: usrAAAAA

OwnerSID: 0xAAAAA

DboUserMapping: sa

DboUserSID: 0x01

我看到的大多数地方都建议我应该使用 ALTER AUTHORIZATION 来明确地将“sa”设置为数据库所有者。但是,我不确定它是否应该设置为 sausrAAAAA,而且我不确定是否有任何可能的影响(我还能破坏什么其他东西?如果任何)。

如有任何帮助,我们将不胜感激。

最佳答案

将数据库所有者设置为“sa”是最可行的方法,不会引起其他问题,但可能会出现一些与安全相关的问题,如下所述:are there reasons I should not set my db owner to sa? .

另请注意,根据您的应用程序要求和帐户的使用方式,如果您将“usrAAAAA”作为 dbo 删除,您可能需要将它们作为用户重新添加到数据库中,并且您可能还需要授予他们权限(例如“db_owner”)。如果是这种情况,并且您已将数据库设置为 TRUSTWORTHY(与 Service Broker 相关的用法经常需要),那么您可能应该将所有者设置为“usrAAAAA”并尝试获取它去工作。

关于sql - Service Broker 和数据库所有权不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14732532/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com