SQL Server 2005 Случайно удалил пользователя из публичной роли, не могу добавить пользователя обратно в роль

SQL Server 2005 Случайно удалил пользователя из публичной роли, не могу добавить пользователя обратно в роль

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

Я случайно удалил этого пользователя из роли «публичного» сервера во время устранения неполадок с подключением, что заблокировало мой доступ к серверу из Management Studio для учетной записи.

Единственный способ получить доступ — добавить пользователя к роли системного администратора, но это не сработает, поскольку теперь у пользователя есть доступ ко всем базам данных.

Теперь, когда я пытаюсь добавить пользователя обратно в роль публичного сервера, я получаю сообщение об ошибке, в котором говорится, что членство в роли не может быть изменено.

Любопытно, что когда я нажимаю правой кнопкой мыши на имени пользователя и просматриваю свойства, система утверждает, что пользователь является членом публичной роли, и не позволяет мне изменить членство.

Вопросы:

  • Итак, если членство в публичной роли нельзя изменить, то как я вообще смог удалить пользователя из роли?
  • Как мне снова добавить пользователя, чтобы восстановить доступ к студии управления для этого пользователя?

решение1

Чтобы помочь с дополнительными подробностями, вот как все это должно выглядеть, чтобы вы могли точно сказать, какая часть неверна. У вас есть логин для сервера и пользователь для базы данных для учетной записи, с которой у вас возникли проблемы. На уровнях сервера и базы данных вы увидите публичную роль (роль сервера и роль базы данных). Свойства публичной серверной роли не будут показывать пользователей, но свойства логина будут показывать публичную роль базы данных для всех баз данных (она будет отмечена, и вы не сможете ее снять). Свойства публичной роли базы данных также не будут показывать никаких членов, и свойства пользователя базы данных также не будут показывать публичную роль. Из-за всего этого я не верю, что вы удалили пользователя из публичной роли.

Если вы хотите попробовать удалить и заново создать пользователя, вы можете сначала попробовать зайти в базу данных и просто удалить пользователя базы данных. Это оставит логин, в свойства которого вы можете зайти, и в разделе User Mapping не должно быть отмечено ни одной базы данных. Теперь вы можете проверить базу данных (потому что пользователь базы данных был удален) и выбрать любые нужные вам роли. Если это не сработает, вы также можете удалить логин вместе с пользователем базы данных, чтобы попытаться очистить все. Для последней проверки пользователя вы можете запустить этот SQL:

use database_name
exec sp_change_users_login 'Report'

Это покажет вам всех потерянных пользователей, что может означать, что проблема с вашим пользователем все еще существует. Обычно это можно исправить с помощью:

use database_name
exec sp_change_users_login 'Auto_Fix', 'username'

Чтобы попытаться закончить это, прежде чем это затянется, может быть что-то еще, что вызывает проблему с подключением для этого пользователя. Если ничего из этого не работает, можете ли вы опубликовать сообщение об ошибке, которое вы получаете при входе в систему?

Связанный контент