Прямой доступ к базе данных tempdb

#sql-server #permissions #tempdb

#sql-сервер #разрешения #база данных tempdb

Вопрос:

Представитель поставщика приложений попросил меня предоставить dbowner доступ к базе данных tempdb для входа в их приложение; чтобы иметь возможность создавать объекты в базе данных tempdb без префиксов «#» или «##». Я пытался убедить его забыть запрашивать прямой доступ к базе данных tempdb, утверждая, что предоставление прямого доступа может помешать внутренним операциям ядра SQL Server и помешать процессам очистки базы данных tempdb правильно выполнять свою работу. А также есть еще один недостаток при перезапуске службы SQL, который приводит к возврату любых настроек разрешений в базе данных tempdb к значениям по умолчанию.

Есть ли что-нибудь, что я мог бы пропустить в этом отношении?

Комментарии:

1. Вы не должны использовать базу данных tempdb для постоянного хранения, все в ней одноразово. Согласно документации базы данных Microsoft tempdb , tempdb создается заново при каждом запуске SQL Server, так что система всегда запускается с чистой копией базы данных, а операции резервного копирования и восстановления запрещены tempdb . На мой взгляд, вам следует менять поставщиков приложений так быстро, как только сможете.

2. Если приложению требуется своя собственная рабочая база данных и оно не желает использовать «временные» объекты, то оно должно нести ответственность за свою собственную частную базу данных. Например, SSRS необходимо создать большое количество временных / энергозависимых объектов, которые не являются частью приложения или требуют включения в решение для резервного копирования, поэтому у него есть собственная база данных ReportServerTemp , чтобы она могла надежно сохранять данные после перезагрузки.

3. db_owner это довольно плохая идея, самое большее, что вы могли бы им дать db_ddladmin . Но, как уже упоминалось, все равно все стирается, так что неясно, чего они пытаются добиться. Вы можете изменить model базу данных, которая используется для воссоздания tempdb , но это, вероятно, еще худшая идея

4. @Stu , спасибо , что привели хороший пример отказа от использования базы данных tempdb и наличия собственного временного хранилища