W Cat - SQL за 24 часа
Право предоставлено.
GRANT RECORDS_CLERK TO USER1;
Право предоставлено.
Оператор DROP ROLE
Роль удаляется с помощью оператора DROP ROLE.
DROP ROLE Имя_роли;
Вот пример:
DROP ROLE RECORDS_CLERK;
Роль удалена.
Оператор SET ROLE
Роль может быть назначена пользователю в рамках его сеанса доступа к базе данных с помощью оператора SET ROLE.
SET ROLE Имя_роли;
Вот пример:
SET ROLE RECORDS_CLERK;
Роль назначена.
С помощью одного оператора можно назначить и несколько ролей.
SET ROLE RECORDS_CLERK, ROLE2, ROLE3;
Роль назначена.
В некоторых реализациях языка (например, Oracle) все назначаемые пользователю роли автоматически становятся ролями по умолчанию, т. е. ролями, по умолчанию назначаемыми пользователю при входе в систему.
Резюме
Вы ознакомились с основами обеспечения надежного хранения данных в реляционных базах данных средствами SQL, а также с основами управления пользователями баз данных. Первым шагом процесса обеспечения безопасности является создание учетной записи пользователя базы данных. После этого пользователю необходимо сразу же предоставить определенные привилегии доступа к соответствующим частям базы данных, после чего стандарт ANSI позволяет использовать роли так. как это обсуждалось выше. Привилегии можно назначать пользователям или ролям. Различают два типа привилегий - привилегии доступа к системе и привилегии доступа к объектам.
Привилегии доступа к системе дают пользователю возможность выполнять такие действия в базе данных, как подключение к ней, создание таблиц, создание учетных записей пользователей, изменение состояния базы данных и т. п. Привилегии доступа к объектам позволяют пользователям предоставлять доступ к объектам базы данных, отбирать данные этих объектов и манипулировать полученными данными.
Для предоставления и отмены привилегий в SQL имеются две команды - GRANT и REVOKE. Эти две команды используются для того, чтобы осуществлять общее управление процессом назначения и отмены привилегий базы данных. В ходе этого часа мы с вами обсудили относящиеся к SQL принципы обеспечения безопасности базы данных, хотя в рамках реляционных баз данных имеется и целый ряд других связанных с безопасностью вопросов.
Вопросы и ответы
Что делать пользователю, если он забудет свой пароль для доступа к базе данных?
Пользователь должен обратиться к своему непосредственному руководителю или в отдел технической поддержки. В отделе технической поддержки обычно имеются возможности для восстановления паролей. Если же нет, то восстановить пароль может администратор базы данных или отдел безопасности. После восстановления пароля пользователь обязан сменить его сразу же после очередного подключения к базе данных.
Как действовать, если необходимо разрешить пользователю подключение к базе данных (CONNECT), но пользователю не требуются все привилегии, разрешенные этой ролью?
Просто не предоставлять пользователю привилегии CONNECT, а назначить список только тех привилегий, которые ему нужны. Если же пользователю были предоставлены привилегии CONNECT, но с некоторого момента весь соответствующий список привилегий уже оказывается не нужным, просто отмените CONNECT и предоставьте пользователю список тех привилегий, которые ему нужны.
Почему так важно новому пользователю сразу сменить пароль, полученный им от администратора или другого официального лица, создававшего учетную запись пользователя?
Изначально пароль создается при создании учетной записи пользователя. Но личный пароль пользователя не должен знать никто - ни администратор базы данных, ни руководство. Пароль должен оставаться в секрете от других пользователей, чтобы они не могли использовать чужие данные.
Практикум
Задания практических занятий разделены на тесты и упражнения. Тесты предназначены для проверки общего уровня понимания рассмотренного материала. Упражнения дают возможность применить на практике идеи, обсуждавшиеся в ходе текущего урока, в комбинации с идеями из предыдущих уроков. Мы рекомендуем ответить на тестовые вопросы и выполнить упражнения прежде, чем продолжать дальнейшее чтение книги. Ответы можно проверить по Приложению Б, "Ответы"
Тесты
1. Какая опция позволяет предоставлять доступ к объектам, не являясь их владельцем?
2. При предоставлении привилегий пользователю PUBLIC эти привилегии получат все пользователи базы данных или только определенные пользователи?
3. Какие привилегии необходимы для разрешения просматривать данные конкретной таблицы?
4. К какому типу привилегий относится привилегия SELECT?
Упражнения
1. Запишите оператор, разрешающий доступ на выборку из вашей таблицы EMPLOYEE_TBL, для пользователя с именем RPLEW. При этом необходимо предоставить пользователю RPLEW право наделять других пользователей привилегиями доступа к данной таблице.
2. Запишите оператор, отменяющий роль CONNECT для пользователя из п 1.
3. Запишите оператор, дающий пользователю RPLEW возможность выбирать, пополнять и обновлять данные таблицы EMPLOYEE_TBL.
20-й час Создание и использование представлений и синонимов
В ходе этого урока мы с вами поговорим о производительности, о создании и удалении представлений, о роли представлений в обеспечении защиты данных и о том, как обеспечить конечному производителю простоту доступа к данным и составления отчетов. Кроме того, мы поговорим о синонимах.
Основными на этом уроке будут следующие темы.
• Что такое представление?
• Использование представлений
• Представления и безопасность
• Хранение представлений
• Создание представлений
• Связанные представления
• Манипуляция данными в представлениях
• Что такое синоним?
• Управление синонимами
• Создание синонимов
• Удаление синонимов
Что такое представление?
Представление - это виртуальная таблица, т. е. представление выглядит как таблица и ведет себя при обращении с ним пользователя подобно таблице. Представление на самом деле является комбинацией таблиц в форме заранее определенного запроса. Например, на основе таблицы EMPLOYEE_TBL можно создать представление, содержащее только имена и адреса сотрудников, а не все столбцы таблицы. Представление может содержать также не все, а только некоторые столбцы таблицы. Представление может основываться на данных как одной, так и нескольких таблиц.
Представление - это заранее определенный запрос, сохраненный в базе данных, имеющий вид обычной таблицы и проявляющий себя подобно таблице, но не требующий дополнительного места для хранения.
Созданное представление фактически означает выполнение в отношении базы данных того оператора SELECT, который составляет суть представления. Такой оператор SELECT может либо просто содержать список столбцов таблицы, из которой из-ачекаются данные, либо может быть более сложным и включать обработку извлекаемых данных с помощью различных функций для представления этих данных в том виде, в котором их удобно видеть пользователю. Взгляните на рис. 20.1.
Представление рассматривается как объект базы данных, хотя оно и не требует реального места для своего хранения. Главное различие между представлением и таблицей состоит в том, что данные таблицы требуют физической памяти для своего хранения, а представление просто ссылается на данные реальных таблиц и поэтому места для своих данных не требует.
Представление используется точно так же, как и обычная таблица. Данными представления тоже можно манипулировать, хотя и с некоторыми ограничениями. В следующих разделах обсуждаются некоторые общие способы использования представлений, а также то, как представления хранятся в базе данных.
Рис. 20.1, Представление
Если используемая в представлении таблица удаляется, представление становится недоступным, и тогда при попытке выполнения запроса в отношении данного представления будет получено сообщение об ошибке
Использование представлений для защиты данных
Представления можно использовать для защиты данных. Предположим, что у вас имеется таблица EMPLOYEE_TBL, содержащая имена, адреса, телефоны сотрудников, данные для срочной связи с ними, названия их отделов, должности и сведения об оплате их труда. Вам дали несколько сотрудников в помощь для составления ряда отчетов и для этого им понадобятся сведения об именах, адресах и телефонах. Если предоставить помощникам полный доступ к таблице EMPLOYEE_TBL, они смогут увидеть информацию об оплате других сотрудников, а вам бы этого не хотелось. Чтобы этого не допустить, вы можете создать представление, содержащее только требуемую информацию, а именно, только имена, адреса и телефоны сотрудников. В этом случае временные помощники получат доступ только к требуемой для отчета информации и не смогут получить из таблицы информацию об оплате труда.