Программирование >>  Программирование баз данных 

1 ... 260 261 262 [ 263 ] 264 265 266 ... 346


Права пользователя подразделяются на три категории.

Право на регистрацию.

Право на получение доступа к конкретной базе данных.

Право на выполнение определенных действий над конкретными объектами в этой базе данньгх.

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

Предоставление доступа к определенной базе данных

Чтобы предоставить пользователю доступ к некоторой базе данных, необходимо прежде всего наделить пользователя правами, которые позволили бы ему обращаться к этой базе данных. Эту задачу можно выполнить в программе Management Studio путем добавления пользователя в состав членов группы Users на узле Databases сервера. Для добавления пользователя с помощью языка T-SQL необходимо применить команду CREATE USER или устаревшую хранимую процедуру sp grantdbaccess.

Вьшолнение оператора CREATE для создания пользователя в базе данных приводит к тому, что права доступа, предоставленные пользователю, фактически сохраняются в базе данных и отображаются на идентификатор этого пользователя, применяемый на сервере. А после восстановления базы данных может потребоваться повторно отобразить права пользователя на идентификаторы сервера, на котором восстановлена база данных.

Команда create user

Команда CREATE USER добавляет нового пользователя к базе данных. Информация о новом пользователе может быть получена из существующей учетной записи, сертификата или асимметричного ключа; еще один вариант состоит в том, что может быть создан локальный пользователь, учетная запись которого может применяться только для работы с техсущей базой данных. Для вызова процедуры sp addlogin применяется следующий синтаксис:

CREATE USER <user name> [ { { FOR I FROM }

LOGIN <login name>

CERTIFICATE <certificate name> ASYMMETRIC KEY <key name>

WITHOUT LOGIN ] [ WITH DEFAULT SCHEMA = <schema name> ]

Некоторые параметры команды CREATE USER рассматриваются в табл. 22.4.



Таблица 22.4. Некоторые параметры команды create user

Параметр Описание

LOGIN Задает имя учетной записи, которой должен быть предоставлен

доступ к текущей базе данных

CERTIFICATE Позволяет указзть логическое имя сертификата, которое должно

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

CREATE CERTIFICATE

ASYMMETRIC KEY Определяет логическое имя асимметричного ключа, которое

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

команды CREATE ASYMMETRIC KEY

WITHOUT LOGIN Позволяет создать учетную запись пользователя, локальную по

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

WITH DEFAULT SCHEMA Определяет схему, отличную от применяемой по умолчанию схемы dbo , как предназначенную для использования по умолчанию для текущего пользователя

Хранимая процедура spgrantdbaccess

Хранимая процедура sp grantdbaccess представляет собой устаревший метод предоставления доступа учетной записи к определенной базе данных. Для вызова процедуры sp grantdbaccess применяется следутощий синтаксис: sp grantdbaccess [©loginame =] <login>[, [@name in db =] <name in this db>

Следует отметить, что доступ должен быть предоставлен к текущей базе данных; иными словами, перед вызовом на выполнение этой хранимой процедуры необходимо обеспечить, чтобы база данных, к которой должен быть предоставлен доступ пользователю, была текущей. Параметр ©loginame представляет собой действительный идентификатор учетной записи, который используется для регистрации СУБД SQL Server. Параметр @name in db позволяет задать псевдоним пользователя, связывающий его с другим идентификатором. Этот псевдоним применяется только для рассмат риваемой базы данных, а во всех других базах данных будет по-прежнему использоваться заданный по умолчанию идентификатор учетной записи или тот псевдоним, который был определен при предоставлении пользователю доступа к соответствующей базе данных. Назначение пользователю псевдонима влияет на то, какие данные возвращают функции, рассчитанные на применение идентификатора, подобные функции USER NAME (). Функции, работающие с объектами системного уровня, такие как SYSTEM USER (), по-прежнему возвращают основной идентификатор учетной записи.

Предоставление прав доступа к объектам базы данных

Для обеспечения нормальной работы пользователя в базе данных недостаточно предоставить ему учетную запись и назначить права доступа к базе данных. Необходимо провести некоторую дополнительную настройку, речь о которой пойдет ниже.



В СУБД SQL Server предусмотрены весьма эффективные средства контроля над тем, к каким объектам может быть предоставлен доступ пользователям. Причем в большинстве случаев приходится не только указывать, к какой информации пользователи могут беспрепятственно обращаться, но и предотвращать доступ пользователей к определенной информации в базе данных. Например, на предприятии может потребоваться предоставить сотруднику, обслуживающему заказчиков, доступ к информации о заказах, но запретить ему просмотр сведений о заработной плате других сотрудников. Верным может также оказаться противоположное требование- разрешить сотрудникам отдела кадров редактировать записи анкет служащих и вместе с тем запретить им предоставление крупных скидок на товары каким-либо заказчикам.

Программное обеспечение SQL Server позволяет назначать отдельные наборы прав на некоторые из объектов СУБД SQL Server. Объекты, доступ к которым может регламентироваться с помощью прав, включают таблицы, представления и хранимые процедуры. Что же касается триггеров, то подразумевается, что на них распространяются права создавшего их лица.

Права пользователей на объекты подразделяются на шесть типов, описанных в табл. 22.5.

Таблица 22.5. Классификация прав пользователей на объекты

Право пользователя

Описание

select

insert

update

delete

references

execute

Дает возможность пользователю просматривать данные. Если пользователь имеет это право, то ему предоставляется возможность выполнять операторы select применительно к таблице или представлению, на которые распространяется это разрешение

Дает возможность пользователю вводить новые данные. Пользователи, обладающие этим правом, могут вызывать на выполнение операторы insert. Следует отметить, что в СУБД SQL Server, в отличие от многих других систем, предоставление права на выполнение операторов insert не влечет за собой автоматическое предоставление права использовать операторы select

С помощью данного права пользователь получает возможность модифицировать существующие данные. Пользователи, обладающие этим правом, могут вызывать на выполнение операторы update. Как и в случае операторов insert, из того, что пользователь имеет возможность выполнять операторы update, не следует, что он имеет право вызывать на выполнение операторы select

Дает возможность пользователю удалять данные. Пользователи, обладающие этим правом, могут вызывать на выполнение операторы delete, и в этом случав ИЗ ТОГО, что пользователь имеет возможность выполнять операторы delete, не следует, что он имеет право вызывать на выполнение операторы select

Дает возможность пользователю вставлять строки в таблицу, на которой задано ограничение внешнего ключа, ссылающееся на другую таблицу, применительно к которой пользователь не имеет прав select

Дает возможность пользователю вызывать на выполнение указанную хранимую процедуру



1 ... 260 261 262 [ 263 ] 264 265 266 ... 346

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика