Читаем Обработка баз данных на Visual Basic®.NET полностью

2. Отключитесь от используемого сервера, выбрав команду File→Disconnect (Файл→Отключиться) или команду File→Disconnect All (Файл→Отключиться от всех) в меню программы SQL Query Analyzer.

3. Теперь выберите команду File→Connect (Файл→Подключиться). В появившемся диалоговом окне Connect to SQL Server введите имя пользователя и пароль, созданные в предыдущем разделе для подключения к базе данных Novelty.

4. Теперь попробуйте выполнить запрос к таблице, доступ к которой этому пользователю запрещен. Например, выполните запрос

SELECT *

FROM tblCustomer

SQL Server вернет следующую строку:

Server: Msg 229, Level 14, State 5, Line 1

SELECT permission denied on object database 'Novelty', owner 'dbo'.

НА ЗАМЕТКУ

В этом примере (особенно в п. 5) предполагается, что используется база данных Novelty, а не какая-то другая.

5. Попытаемся теперь выполнить следующую хранимую процедуру:

LastNameLookup' smith'

В ответ SQL Server извлечет из таблицы tblCustomer все имена, созвучные имени Smith.

<p>Применение ограничений безопасности в программе SQL Query Analyzer</p>

Параметры системы безопасности можно контролировать с помощью программы SQL Query Analyzer. Обычно для этого используется тот же пакет команд SQL, что и для создания базы данных. Такой порядок позволяет разработчику учесть и применить все необходимые ограничения безопасности для вновь созданных объектов базы данных.

Для создания новой учетной записи со средствами аутентификации SQL Server с помощью программы SQL Query Analyzer следует использовать хранимую процедуру sp_addlogin. Например, чтобы создать учетную запись Frances, выполните такую команду:

sp_addlogin 'Frances'

А чтобы создать пароль stairmaster для учетной записи Frances, выполните команду

sp_addlogin 'Frances', 'stairmaster'

Если вместо создания учетной записи SQL Server требуется добавить уже существующую учетную запись Windows, то для этого нужно аналогичным образом использовать хранимую процедуру sp_grantlogin. Учтите, однако, что в таком случае нельзя указать пароль, так как в SQL Server пароли не являются отдельной частью определения учетной записи Windows (потому что они поддерживаются системой безопасности Windows).

Чтобы пользователь с учетной записью Frances мог работать с базой данных Novelty, используйте хранимую процедуру sp_adduser.

USE Novelty

GO

sp_adduser 'Frances', 'Frannie'

GO 

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

USE Novelty

GO

SELECT name, dbname

FROM syslogins

Для включения нового пользователя в состав группы пользователей с ролью базы данных db_datawriter выполните хранимую процедуру sp_addrolemember.

USE Novelty

GO

sp_addrolemember 'db_datawriter', 'Frannie'

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

Чтобы выдать и отменить разрешения для любого объекта базы данных, используйте команды SQL GRANT и REVOKE соответственно. Команда GRANT разрешает пользователю выполнять указанную роль, а команда REVOKE отменяет разрешение. Например, для выдачи членам роли public разрешения на полный доступ к таблице Customer воспользуйтесь следующей командой SQL:

GRANT ALL

ON tblCustomer

TO public

А для выдачи членам роли public разрешения только на выборку данных из таблицы tblCustomer воспользуйтесь командой SQL

GRANT SELECT

ON tblCustomer

TO public

Для отмены разрешения на полный доступ к таблице tblCustomer со стороны членов роли public используйте команду SQL REVOKE.

REVOKE ALL

ON tblCustomer

TO public

Аналогично можно указывать разрешения на обновление, выборку, удаление и вставку данных в таблицы и представления. Более того, разрешения можно выдавать и отменять специально для выполнения хранимых процедур.

<p>Определение подключенных пользователей</p>

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

РИС. 3.27. Результат выполнения хранимой процедуры sp_who

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

Перейти на страницу:

Похожие книги

Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT