Quando executo esse SQL:
USE ASPState
GO
IF NOT EXISTS(SELECT * FROM sys.sysusers WHERE NAME = 'R2Server\AAOUser')
CREATE USER [R2Server\AAOUser] FOR LOGIN [R2Server\AAOUser];
GO
Estou tendo o erro a seguir:
O login já tem uma conta com um nome de usuário diferente.
Como sei qual é esse nome de usuário diferente para minha conta de login?
sql-server
security
logins
Jack
fonte
fonte
dbo
sendo exibido. Estranho, não me lembro de ter usado odbo
para minha contaR2Server\AAOUser
. Pensando no que devo fazer a seguir.aspnet_regsql -E -S .\MSSQLSERVER_R2 -ssadd
para criar oASPState
banco de dados. Acho que provavelmente já estou preparada, embora nem perceba isso em primeiro lugar.sys.server_principals
esys.database_principals
.sysusers
esyslogins
existem apenas para compatibilidade com versões anteriores.É uma 'coisa de metadados' ...
Às vezes, o usuário do banco de dados é "corrompido" durante o que estiver acontecendo nesse banco de dados. (Vi um comportamento semelhante se o banco de dados for restaurado, e as funções na cópia restaurada diferem da que você substituiu. Foi por isso que tentei abaixo, o que corrigiu o problema para mim.)
Abra as propriedades de Login no SSMS -> (Segurança | Logins | com falha no UserID | Propriedades | Mapeamento de Usuários). Você provavelmente verá os bancos de dados já verificados e as funções atribuídas (como perfeitamente normal).
Observe as permissões no banco de dados que deu o erro, apenas para referência.
fonte
Cannot drop the user 'dbo'. (Microsoft SQL Server, Error: 15150)
Cannot drop the user 'dbo'.
mensagem de erro. Corri esse script, que removeu o mapeamento de usuários problemáticos e corrigiu o problema:USE DATABASE_NAME; ALTER AUTHORIZATION ON DATABASE::DATABASE_NAME TO [sa]
. Para obter mais informações, essa é a fonte que eu usei: blog.sql-assistance.com/index.php/cannot-drop-the-user-dbo