229: Отказано в разрешении SELECT/EXECUTE на объект
SQL ServerЧто это значит?
У пользователя нет разрешения на выполнение запрошенной операции (SELECT, INSERT, EXECUTE и т. д.) над объектом. Доступ запрещён по соображениям безопасности.
Почему возникает?
Необходимое разрешение не выдано пользователю/роли, неверное владение схемой (нарушенная цепочка владения), явный DENY на объект или пользователь не входит в роль с достаточными правами.
Как исправить
Выдайте необходимое разрешение: GRANT SELECT ON dbo.MyTable TO UserName (или GRANT EXECUTE ON dbo.MyProcedure TO ...). Добавьте пользователя в подходящую роль (например, db_datareader). Удалите явный DENY, если он есть. Организуйте разрешения по принципу наименьших привилегий. Проведите аудит существующих разрешений через sys.database_permissions.
Ещё по этой СУБД
- 9002Журнал транзакций базы данных заполнен по причине ...
- 1105Не удалось выделить место для объекта в базе данных, поскольку файловая группа заполнена
- 208Недопустимое имя объекта
- 4060Не удаётся открыть базу данных, запрошенную логином. Ошибка входа
- 233Соединение с сервером успешно установлено, но затем произошла ошибка (на другом конце канала нет процесса)
- 823Операционная система вернула SQL Server ошибку при чтении/записи по смещению в файле (ошибка I/O)
- 824SQL Server обнаружил ошибку I/O, связанную с логической согласованностью (повреждение страницы)