Я пытаюсь загрузить dll в MSSQL с помощью:
USE dbname
GO
CREATE ASSEMBLY foo
FROM 'C:\foo\foo.dll'
WITH PERMISSION_SET = UNSAFE
GO
И я получаю сообщение об ошибке:
Msg 33009, Level 16, State 2, Line 2
The database owner SID recorded in the master database differs from the database owner
SID recorded in database 'dbname'. You should correct this situation by resetting the
owner of database 'dbname' using the ALTER AUTHORIZATION statement.
MSDN на самом деле не говорит мне больше об ошибке, чем сама ошибка.
Я просмотрел весь Интернет и пришел к выводу, что единственное, что кто-либо когда-либо делал, чтобы избежать этого, это:
use dbname
go
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
Но действительно ли смена владельца - единственный способ избежать этой ошибки? Зачем мне это делать, есть ли другой способ? Я хотел бы получить дополнительную информацию об этой ошибке, прежде чем войти и слепо сменить владельца.