SQL Server 2000
Страница 38

Для различных объектов применяются разные наборы прав доступа к ним: О SELECT, INSERT, UPDATE, DELETE, REFERENCES- эти права могут быть приме­нены для таблицы или представления;

О SELECT и UPDATE — эти права могут быть применены к конкретному столбцу таблицы или представления;

О EXECUTE— это право применяется только к хранимым процедурам и функ­циям. Ниже приводится более подробное описание каждого из этих прав.

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

О UPDATE. Это право выдается либо на уровне таблицы, что позволяет изменять все данные в таблице, либо на уровне отдельного столбца, что разрешает из­менять данные только в пределах конкретного столбца.

О DELETE. Это право позволяет удалять строки из таблицы или представления. Как и право INSERT, право DELETE может быть выдано только на уровне таб­лицы или представления и не может быть выдано на уровне столбца.

О SELECT. Разрешает выборку данных. Может выдаваться как на уровне табли­цы, так и на уровне отдельного столбца.

О REFERENCES. Возможность ссылаться на указанный объект. Применительно к таблицам разрешает пользователю создавать внешние ключи, ссылающиеся на первичный ключ или уникальный столбец этой таблицы. Применительно к представлениям право REFERENCES позволяет связывать представление со схемами таблиц, на основе которых строится представление. Это позволяет отслеживать изменения структуры исходных таблиц, которые могут повли­ять на работу представления. Право REFERENCES не существовало в предыду­щих версиях SQL Server.

Как следует из вышеизложенного, доступ можно предоставлять как на уров­не всей таблицы или представления, так и на уровне отдельного столбца. Обыч­но не практикуется управление правами доступа на уровне конкретного столбца. Если в таблице имеется один или более столбцов, доступ пользователей к кото­рым необходимо ограничить, то в базе данных часто создается представление (view), включающее только те столбцы исходной таблицы, доступ к которым разрешен.

Предоставить или отклонить доступ пользователю базы данных ко всем объек­там базы данных можно при помощи встроенных ролей базы данных. Напри­мер, для разрешения чтения данных из всех таблиц и представлений базы данных достаточно включить пользователя в фиксированную роль db_datareader, а не изменять права доступа пользователя к каждой таблице и представлению в от­дельности.

Используйте команду GRANT для управления разрешениями пользователя на доступ к объектам базы данных:

GRANT

(ALL [PRIVILEGES] | permiss1on[ n]}

{

[(column[, .n])] ON {table | view}

| ON {table | view}[(column[, .n])]

| ON {stored_procedure | extended_procedure}

}

TO security_account[, .n] [WITH GRANT OPTION] [AS {group | role}]

Назначение параметров команды GRANT следующее:

О ALL — пользователю предоставляются все доступные разрешения. Этот пара­метр могут использовать только участники роли sysadmln;

О permission — список доступных разрешений, которые предоставляются пользо­вателю (SELECT, INSERT, UPDATE, DELETE, EXECUTE). Вы можете одновременно пре­доставлять несколько разрешений, в этом случае их нужно разделять запятыми;

О security_account — имя того объекта системы безопасности, который необ­ходимо включить в роль. В качестве таких объектов могут выступать как учет­ные записи SQL Server, так и пользователи и группы пользователей Windows NT, которым предоставлен доступ к серверу баз данных;

О table, view, column, stored_procedure, extended_procedure — в качестве данных параметров выступают имена объектов в текущей базе данных, для которых необходимо предоставить доступ;

О WITH GRANT OPTION— использование данного параметра позволяет пользо­вателю, которому вы предоставляете права, назначать права на доступ к объек­ту другим пользователям;

О AS {group | role) — этот необязательный параметр позволяет указать уча­стие пользователя в роли, которая имеет возможность предоставлять права другим пользователям.

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63