не могу изменить пароль для пользователя - PullRequest
1 голос
/ 19 июня 2011

Я скачал базу данных и подключил ее к своему локальному серверу sql, однако я не могу изменить пароль одного из существующих пользователей в БД.

Используя следующую команду:

ALTER LOGIN [NotificationsUser] WITH PASSWORD = 'password';

Я получаю сообщение об ошибке:

Сообщение 15151, Уровень 16, Состояние 1, Строка 1 Не удается изменить имя пользователя NotificationsUser, поскольку он не существует или у вас нет разрешения.

Возможно ли это? Какие права доступа мне все равно нужны для изменения прав пользователя?

Ответы [ 2 ]

1 голос
/ 19 июня 2011

Если вы подключили эту базу данных к локальному серверу SQL, вам нужно будет выполнить несколько действий:

  1. Если вы еще этого не сделали, создайте пользователялогины на вашем сервере SQL, чтобы соответствовать тем, которые существуют в прикрепленной базе данных.Проще сделать это перед подключением базы данных.Но это можно сделать после того, как БД была присоединена.

  2. Поскольку идентификаторы безопасности пользователей во вновь подключенной базе данных не будут такими же, как для вновь созданных учетных записей, которые вам понадобятсячтобы решить эту проблему, используя хранимую процедуру sp_change_users_login.Пользователь базы данных фактически осиротел.

Например, если у вас есть:

SQL Login: bob Присоединенный пользователь базы данных: bob

Откройте новый запрос в SQL Management Studio для присоединенной базы данных, затем выполните:

sp_change_users_login @action='report'

Если в вашей базе данных есть «осиротевшие» пользователи, вы увидите набор результатов, который выглядит следующим образом:

UserName  UserSID
bob       0x57F6DFA5D5D7374A97769856E7CB5610

Чтобы повторно подключить этого пользователя к входу в SQL, выполните:

sp_change_users_login @action='update_one', 
                      @loginname='bob', 
                      @usernamepattern='bob'
1 голос
/ 19 июня 2011

Я думаю, вы путаете пользователя базы данных с логином на сервере.

В вашей базе данных может быть пользователь с именем NotificationUser, но это должно быть связано с именем входа на сервер, который является объектом, который вы пытаетесь изменить с помощью сценария. Восстановление базы данных с другого сервера не создало бы этот логин сервера, поэтому есть большая вероятность, что он не существует на вашем сервере. Подробнее информация здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...