Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 163
от 03.11.2006, 09:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 385, Экспертов: 52
В номере:Вопросов: 1, Ответов: 3


Вопрос № 60471: Здравствуйте уважаемые эксперты. Ответьте пожалуйста на вопрос. Зачем в СУБД SQL Server предназначены Rules, Roles и Views. Где они применяются и для чего. Желательно с примером. ..

Вопрос № 60.471
Здравствуйте уважаемые эксперты.
Ответьте пожалуйста на вопрос.
Зачем в СУБД SQL Server предназначены Rules, Roles и Views. Где они применяются и для чего. Желательно с примером.
Отправлен: 28.10.2006, 16:29
Вопрос задал: Ram (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Марк Крейн
Здравствуйте, Ram!
Rules - правила. Типа ограничений на вводимую информацию в БД. Roles - роли. Это для того чтобы объединять пользователей SQL сервера в роли чтобы было легче администрировать БД. Views - представления. Представление - это отдельная выборка из базы данных (возможно из нескольких связанных таблиц) по каким-то определённым критериям.
К сожалению примеры дать не могу, так как нет SQL сервера под рукой. А вообще для таких вопросов существует специальная (моя) рассылка MSSQL Server 2000/2005. Это просто на будущее, чтобы вопросы не перемешивались.
Ответ отправил: Марк Крейн (статус: Практикант)
Ответ отправлен: 28.10.2006, 20:07

Отвечает: Grigory
Здравствуйте, Ram!
Вот как определяет SQL Server Rules Microsoft:
Rule:

A database object that is bound to columns or user-defined datatypes and specifies which data values are acceptable in a column. CHECK constraints provide the same functionality and are preferred because they are in the SQL-92 standard.

Иными словами, правило обычно привязано к колонке таблицы илипользовательскому типу данных и определяет приемлемые значения для данной колонки в таблице. Тот же эффект достигается с помощью ограничений CHECK, использование которого является предпочтительным, поскольку соответствует стандарту SQL-92.

Роль:
Используется для определения привилегий пользователя БД, например у Администратора БД привилегий больше, чем у обычного пользователя. Привилегии определяются через роль пользователя.
Роли подразделяются на: Server Roles, Database Roles, Application Roles.

View:
Является отображением всех или части данных содержащихся в одной или более таблицах - в зависимости от того, что Вы хотите, чтоб видел конкретный пользователь с конкретными привилегиями.

Удачи!
Ответ отправил: Grigory (статус: 3-ий класс)
Ответ отправлен: 29.10.2006, 02:29

Отвечает: Delph
Здравствуйте, Ram!

Ко всему, что сказано выше, добавлю своё мнение о представлениях (VIEW) данных. Их в самом деле можно использовать для разграничения прав доступа, но я чаще пользуюсь ими для сбора информации из разных таблиц базы данных. В само представление могут быть зашиты очень сложные запросы, объединяющие несколько таблиц в одно целое, а также определения вычисляемых полей (например, я формировал вычисление возраста человека по дате его рождения и текущей дате и определял результат как отдельный столбец). Приложение видит VIEW как отдельную таблицу, и если не нужна дополнительная фильтрация, оно может обратиться к представлению примерно так:

SELECT <список полей>
FROM <название_представления>

Можно, как и в случае с обычными таблицами, написать дополнительные критерии отбора:

WHERE <перечень условий>

Представления, как и таблицы, можно также объединять с другими представлениями и таблицами в SELECT-запросах и использовать в качестве основы для других представлений. Впрочем, если пишется сложный VIEW, то как правило он базируется на физических таблицах (из соображений эффективности, но это не более чем рекомендация, к которой Вы вольны прислушаться или проигнорировать её) и включает в себя всю необходимую информацию, чтобы приложению не было необходимости цеплять к нему дополнительные таблицы (тоже рекомендация, а не правило, к тому же представления бывают совершенно разными и по сложности, и по цели создания).

Если в Вашей базе данных существует сложная логическая связь между разными таблицами, которой Вы предполагаете часто пользоваться, имеет смысл оформить эту связь в "физическую" структуру при помощи представления: это упростит обращение к нужной информации. Если нужна более детальная консультация, пишите в личную почту.
Ответ отправил: Delph (статус: 2-ой класс)
Ответ отправлен: 30.10.2006, 10:53


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное