Когда я выполняю этот SQL:
USE ASPState
GO
IF NOT EXISTS(SELECT * FROM sys.sysusers WHERE NAME = 'R2Server\AAOUser')
CREATE USER [R2Server\AAOUser] FOR LOGIN [R2Server\AAOUser];
GO
Я получаю следующую ошибку:
Логин уже имеет учетную запись под другим именем пользователя.
Как я узнаю, что это другое имя пользователя для моей учетной записи?
sql-server
security
logins
Джек
источник
источник
dbo
отображаемое значение . Странно, я не помню, чтобы я использовалdbo
для своей учетной записиR2Server\AAOUser
. Интересно, что мне делать дальше.aspnet_regsql -E -S .\MSSQLSERVER_R2 -ssadd
для созданияASPState
базы данных. Я думаю, наверное, я уже настроен, хотя я даже не осознаю этого.sys.server_principals
иsys.database_principals
.sysusers
иsyslogins
только для обратной совместимости.Это «вещь метаданных» ...
Иногда пользователь базы данных «повреждается» во время всего, что происходит в этой БД. (Я видел похожее поведение, если БД восстанавливается, а роли в восстановленной копии отличаются от ролей, содержащихся в той, которую вы наложили. Вот почему я попробовал ниже, что решило проблему для меня.)
Откройте Свойства входа в систему SSMS -> (Безопасность | Входы в систему | Сбой UserID | Свойства | Отображение пользователя). Вы, вероятно, увидите, что БД уже проверена и ей назначены роли (как в обычном порядке).
Обратите внимание на разрешения для БД, дающей ошибку, просто для справки.
источник
Cannot drop the user 'dbo'. (Microsoft SQL Server, Error: 15150)
Cannot drop the user 'dbo'.
сообщение об ошибке. Я побежал этот сценарий, который удаляется проблемное отображением пользователей и неподвижным вопрос:USE DATABASE_NAME; ALTER AUTHORIZATION ON DATABASE::DATABASE_NAME TO [sa]
. Для получения дополнительной информации это источник, который я использовал: blog.sql-assistance.com/index.php/cannot-drop-the-user-dbo