Это мои настройки:
- SQL-сервер 2005
- Пользователь A уже настроен как пользователь на сервере, но не в базе данных A.
- GRANT Выполнить ON [GetOrders] TO [UserA] AS [dbo]
Как видите, я пропустил шаг. Я еще не добавил UserA в базу данных. Это не дает сбоя и позволяет мне выполнить execute на объекте.
Я полагаю, что в 2000 году это привело бы к ошибке и не позволило бы мне сделать это.
Теперь у меня есть все эти объекты с правильными установленными разрешениями, но пользователи не могут видеть базу данных. Чтобы решить эту проблему, я должен удалить пользователей из базы данных, заново добавить их, а затем дать разрешения.
Почему это разрешено, и есть ли способ либо предотвратить его, либо заставить его автоматически создавать логин db всякий раз, когда новому пользователю предоставляются разрешения для объекта.
спасибо.