У меня есть база данных, с которой мне нужно подключиться и выбрать. У меня есть SQL Login, назовем его myusername. Когда я использую следующий, не ВЫБРАТЬ разрешение не появится:SQL Select Permissions
SELECT * FROM fn_my_permissions ('dbo.mytable', 'OBJECT')
GO
Несколько раз я пытался что-то вроде:
USE mydatabase
GO
GRANT SELECT TO myusername
GO
GRANT SELECT ON DATABASE::mydatabase TO myusername
GO
GRANT SELECT ON mytable TO myusername
GO
Это говорит запросы выполняются успешно, но никогда не бывает разницы в первом запросе , Какую простую вещь мне не хватает, чтобы предоставить разрешения на выбор уровня базы данных.
В качестве примечания я сделал двойной уверен, что это правильный пользователь, исправлена база данных, и я уже пробовал предоставить разрешения выбора уровня таблицы. До сих пор я продолжаю получать ошибку:
SELECT permission denied on object 'mytable', database 'mydatabase', schema 'dbo'.
Любые идеи, что мне не хватает? Заранее спасибо.
EDIT/UPDATE:
По правой кнопкой мыши на SQL пользователя в среде SQL Server Management Studio 2008, я обнаружил, каждый роли базы данных проверяется, в том числе и db_denydatareader db_datareader ... может это блокирует мою способность давать разрешение на уровне базы данных? Если это так, какова цель db_denydatareader? Мне кажется глупым иметь «DENY», который нельзя просмотреть при запросе разрешений.
РЕЗЮМЕ: Конечно, это исправлено.
Вы должны опубликовать свой EDIT/UPDate в качестве принятого ответа =) – ajdams
Вам нужна ваша dba, чтобы исправить ваши права. – HLGEM