Скрипты логина и таблиц DEPO: перепривязка пользователя базы к логину (ALTER USER … WITH LOGIN), если база восстановлена из копии или логин пересоздан
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -61,6 +61,12 @@ GO
|
||||
IF USER_ID(N'%[2]s') IS NULL CREATE USER [%[2]s] FOR LOGIN [%[2]s];
|
||||
GO
|
||||
|
||||
-- Пользователь базы мог остаться от прежнего логина (база восстановлена из копии с другого сервера
|
||||
-- или логин пересоздан): привязываем его к текущему логину, иначе вход в базу не пройдёт.
|
||||
IF EXISTS (SELECT 1 FROM sys.database_principals WHERE name = N'%[2]s' AND sid <> SUSER_SID(N'%[2]s'))
|
||||
ALTER USER [%[2]s] WITH LOGIN = [%[2]s];
|
||||
GO
|
||||
|
||||
IF IS_ROLEMEMBER(N'db_datareader', N'%[2]s') = 0 ALTER ROLE db_datareader ADD MEMBER [%[2]s];
|
||||
GO
|
||||
`, db, login)
|
||||
|
||||
Reference in New Issue
Block a user