2009-07-09 1 views
0

Использование SQL Server 2008. Я создал новую базу данных, создал нового пользователя и сопоставил пользователя с тем же именем входа. Предоставлял пользователю все доступные роли, включая db_owner.Выберите разрешение, запрещенное для пользователя, который является db_owner в SQL Server

Пользователь создал новую таблицу, но когда пользователь попытался выбрать из таблицы, появилась ошибка «Разрешение SELECT было отклонено на объект ....».

Почему у пользователя нет разрешения на выбор, если пользователь является членом ролей db_owner и db_datareader?

Я помню, что раньше это работало.

ответ

1

MOst Вероятно, пользователь не является DBO. Проверьте имя таблицы [dbo]. [Tablename] и что пользователь фактически является dbo.

На самом деле - более подробную информацию об ошибке было бы неплохо. Причина, по которой вы обычно выбираете доступ к созданным таблицам.

Есть ли какие-либо разрешения на запрет?

+0

Схема по умолчанию в свойствах пользователя - dbo. Нет установленных разрешений. Это новая база данных, пользователь и таблица. В разделе «Securables» нет записей разрешений. –

+1

Но какой пользователь является владельцем базы данных? имеющий по умолчанию schema = dbo, не то же самое, что фактически является dbo. Щелкните правой кнопкой мыши базу данных и выберите свойства, это скажет вам, кто является владельцем. В качестве альтернативы, выполните sp_helpdb 'YOURDATABASE' –

+0

Новый пользователь не обязательно должен быть владельцем. Владелец - другой пользователь. Он во всех ролях, включая db_owner и db_datareader. Я не понимаю, почему пользователь может создать таблицу, но не выбрать ее. db_datareader должен позволить пользователю читать из всех пользовательских таблиц. По умолчанию объекты dbo доступны, если разрешения явно не указаны. –

Смежные вопросы