логины, пользователи, разрешения в sql express 2005, с диаграммой, блок-схемой - PullRequest
1 голос
/ 25 февраля 2011

enter image description here

Я хочу создать логины и пользователей для моего приложения c # .net winforms, которое использует SQL Server 2005 Express. Насколько мне известно, я создал эти шаги.

Итак, я хочу спросить, правильны ли эти шаги или я делаю много ошибок.

Кроме того, если пропущен какой-либо шаг, пожалуйста, добавьте новые шаги. Кроме того, на последнем шаге, что я должен сделать, должен ли я предоставить разрешения обоим пользователям, USERS и SCHEMA, OR только пользователю USER или OR только SCHEMA.

Я ищу улучшения в этой модели или новой модели, если кто-нибудь может предоставить. Будет большая помощь.

Я хочу предоставить и запретить разрешения уровня базы данных, такие как CREATE, DROP, ALTER DATABASE; УРОВНЯ ТАБЛИЦЫ, например, ВСТАВИТЬ, УДАЛИТЬ, ИЗМЕНИТЬ, ОБНОВИТЬ И УРОВЕНЬ КОЛОННЫ.

Кроме того, необходимо ли создание схемы?

Насколько я знаю: СОЗДАНИЕ ЛОГИНА необходимо СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ для вышеуказанного логина необходимо СОЗДАНИЕ СХЕМЫ есть или не нужно? я не знаю.

1 Ответ

1 голос
/ 28 февраля 2011

Я меняю весь свой ответ. Я действительно думаю, что это не очень хорошая идея - использовать прямой доступ к вашей базе данных. БД не является правильной «точкой дросселирования» для разрешений. Создайте одного пользователя с полными разрешениями БД, которые вам понадобятся. Затем предоставьте пользователям функции в вашем приложении на основе их роли в приложении (отслеживается в таблице в вашей базе данных).

Существует множество проблем с созданием 1 логина на пользователя в вашей базе данных. Вот некоторые из них: 1. Кошмар обслуживания 2. Теперь ваши пользователи могут войти в вашу базу данных напрямую, если они смогут подключиться к ней с помощью Management studio или другого инструмента.

  1. Для уточнения. , , создайте один логин для вашего приложения. Назовите это что-то вроде MyApplicationUser .
  2. Создайте таблицу в своем приложении для отслеживания ролей, в которых может участвовать каждый пользователь. Это также может отслеживать функции, которые они могут иметь в вашем приложении (хотя, вероятно, в другой таблице)
  3. Когда пользователь запускает приложение, оно открывается с использованием тех же учетных данных БД ( MyApplicationUser )
  4. Теперь вы знаете, кто пользователь (на основе NTID или логина приложения), и вы можете предоставить им функции, которые ему подходят в приложении)
...