Следующая статья: Инструкция GRANT советы и хитрости DB2
Содержание
Вы можете назначать несколько привилегий для одного объекта в одной инструкции, хотя не следует смешивать привилегию ALL PRIVILEGES с отдельными ключевыми словами в одной инструкции GRANT. Вы можете присвоить одному пользователю конкретную привилегию доступа к конкретному объекту базы данных следующим образом.
GRANT имя_привилегии ON имя_объекта ТО имя_получателя_привилегии Например:
GRANT SELECT ON employee TO Dylan;
Вы можете присвоить конкретную привилегию для доступа к конкретному объекту всем пользователям, используя «пользователя» PUBLIC. Если право предоставляется пользователю PUBLIC, это означает, что обращаться к объекту может любой и предоставлять специфический доступ к объекту не нужно. Например:
GRANT SELECT ON employee TO PUBLIC;
При предоставлении привилегии нескольким получателям просто разделяйте их запятыми.
GRANT SELECT ON employee TO Dylan, Matt
В приведенном выше примере показано, что вы можете предоставлять привилегии нескольким пользователям, в данном случае Dylan и Matt, а также пользователю PUBLIC в одной инструкции GRANT. При назначении привилегий доступа к таблице можно уточнять привилегию на уровне столбцов, указав заключенный в скобки список столбцов после имени таблицы. Например:
GRANT SELECT ON employee(emp_id, emp_fname, emp_lname, job_id) TO Dylan, Matt
В предыдущем примере показано, что Dylan и Matt теперь имеют привилегии доступа к нескольким столбцам таблицы employee.
Советы и хитрости программирования
Представления, в зависимости от реализации базы данных, могут иметь или не иметь независимого от базовых таблиц предоставления привилегий.
Обратите внимание, что все дополнительные предложения WITH управляют в инструкции дополнительным предоставлением привилегий. Таким образом, следующая команда предоставляет пользователю Dylan привилегию для выборки записей из таблицы employee.
GRANT SELECT ON employee TO Dylan;
А следующая команда предоставляет пользователю Dylan привилегию для выборки записей из таблицы employee и также назначает ему привилегию предоставлять право выборки другим пользователям.
GRANT SELECT ON employee TO Dylan WITH GRANT OPTION;
Сходным образом вы можете использовать инструкцию REVOKE, чтобы отозвать привилегию WITH GRANT OPTION, отдельную привилегию SELECT или обе сразу.
В большинстве платформ привилегии уровня пользователей и уровня ролей изолированы. Поэтому пользователь, которому назначено две роли, может иметь четыре набора привилегий сразу - один раз для себя, один раз для пользователя PUBLIC и по одному разу для каждой назначенной ему роли. В этой ситуации следует соблюдать большую осторожность. Чтобы полностью лишить пользователя конкретной привилегии, вы должны отозвать пользовательские привилегии сначала индивидуально, а затем - в обеих ролях.
Инструкция GRANT советы и хитрости DB2
Платформа DB2 в своей реализации инструкции GRANT предоставляет множество опций. Важно отметить, что привилегии доступа к объектам базы данных (например, привилегии SELECT в конкретной таблице) обрабатываются так же, как и другие разнообразные привилегии.
GRANT { [привилегии_базы_данных [, …] ON DATABASE ] | [ CONTROL ON INDEX имя_индекса]
[ {BIND I CONTROL | EXECUTE} ON PACKAGE имя_пакета ] | [ EXECUTE ON [SPECIFIC] {FUNCTION |
METHOD {* | FOR} | PROCEDURE} имя_объекта ] |
[ {ALTERIN j CREATEIN | DROPINJ ON SCHEMA имя_схемы ] |
[ ON SEQUENCE имя_последовательности] |
[ PASSTHRU ON SERVER имя_сервера ] |
[ объектная_привилегия [, …] ON [TABLE] имя_объекта ]
TO [ {USER I GROUP} ]
{ имя_получателя [, …] I имя._группы [, …] I PUBLIC } ] [WITH GRAN'I OPTION] | [ USE OF TABLESPACE
имя_табличного_пространства J
Параметры следующие.
привилегии_6азы_данных
Предоставляется одна или несколько привилегий, которые применимы ко всей базе данных, а не к одному объекту. Привилегии базы данных таковы:
BIND ADD
Предоставляется право создавать пакеты. Пользователь, создающий пакет, всегда будет иметь в этом пакете привилегию CONTROL, даже если привилегия BINDADD позже будет отозвана.
CONNECT
Предоставляется право доступа к конкретной базе данных.
CREATETAB
Предоставляется право создать таблицу базы. Пользователь, создавший таблицу, всегда будет иметь в этой таблице привилегию CONTROL, даже если привилегия CREATETAB позже будет отозвана.
CREAТЕ EXTERNALROUTINE
Предоставляется привилегия регистрировать внешние подпрограммы. Это представляет определенную опасность, поскольку внешние процессы могут иметь вредные побочные эффекты. Подпрограмма после создания будет продолжать существовать, даже если пользователь лишается привилегии CREATE EXTERNAL_R0UT1NE. (За дополнительной информацией обращайтесь к предложению THREADSAFE инструкций CREATE и ALTER для подпрограмм в документации DB2.)
CREATE_N0 Т_ FENCEDJROUTINE
Предоставляется право создавать подпрограммы, которые не ограничиваются текущим процессом пользователя. То есть подпрограммы могут выполняться процессом менеджера базы данных. Предложение CREATE_NOT FENCED ROUTINE является расширением предложения CREATE_EXTERNAL_ROUTlNE. Следовательно, вы автоматически получаете последнюю привилегию, если вам присваивается первая. За дополнительной информацией обращайтесь к описанию предложения CREATE_EXTERNALROUTINE.
DBA DM
Предоставляются права суперпользователя, с возможностью создать любой объект базы, со всеми привилегиями для всех объектов базы данных, и даже с возможностью предоставлять привилегии другим пользователям.
IMPLICIT SCHEMA
Предоставляется право неявного создания схемы, хотя эта привилегия не влияет на возможность создавать схемы и любые объекты в них явным образом.
LOAD
Предоставляется право явным образом загружать {LOAD) указанную базу данных. Пользователи с правами SYSADMn DBADM, которые автоматически уже имеют эту привилегию, не нуждаются в явном присвоении других привилегий для выполнения загрузки базы данных. Однако другие пользователи, имеющие привилегию LOAD, должны иметь как минимум привилегию INSERT в таблице, которую им нужно загрузить.
QUIESCE CONNECT
Предоставляется право доступа к указанной базе данных в то время, когда она приостановлена.
Видео: «Собаки в ресторане»
Занимательное и юмористическое видео с домашними питомцами, собаками, как они ходили в ресторан




