Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Артемов Д.В. -> "Microsoft SQL Server 2000" -> 93

Microsoft SQL Server 2000 - Артемов Д.В.

Артемов Д.В. Microsoft SQL Server 2000 — М.: Издательско-торговый дом «Русская Редакция», 2001. — 576 c.
ISBN 5-7502-0154-6
Скачать (прямая ссылка): artemov.pdf
Предыдущая << 1 .. 87 88 89 90 91 92 < 93 > 94 95 96 97 98 99 .. 187 >> Следующая


{

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

}

FROM security_account[,...n] [AS {group | role}]

Групповое управление именами регистрации

К сожалению, помимо самого факта поддержки аутентификации средствами Windows NT, в версии 8.0 нет средств импорта пользователей и групп из домена. Так что, если Вы хотите задействовать новые возможности проверки прав доступа, а в домене несколько десятков групп и пара сотен пользователей, всю эту информацию нужно вводить вручную. Для облегчения подобной работы я советую применить утилиту Addusers.exe из Windows NT Resource Kit и небольшую программу, со-новые идентификаторы SQL Server. Список пользователей домена можно получить, исполнив утилиту с параметрами /d и именем файла, в который будет выведен список, например: addusers /d c:\temp\users.txt. Результатом исполнения утилиты будет список, где для каждого пользователя или группы выводится информация:

[Users]

<User Name>,<Full Name>,<Password>,<Home Drive>,<Home Path>,

<Profile>, <Soript>

[Global]

<Global Group Name>, <Comment>, <UserNarne>, . , .

[Local]

<Local Group Name>,<Comment>,<UserName>, . ..

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

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

www.books-shop.com

Microsoft SQL Server 2000. Новейшие технологии

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

create table ##admins (f1 sysname, f2 sysname) insert into ##admins execute xp_enumgroups 'dimaa_home' select * from ##admins Group comment

Members can fully administer the computer/domain Members can bypass file security to back up files

Users granted guest access to the computer/domain Members can share directories and printers Supports file replication in a domain

Ordinary users SQL users

Administrators Backup Operators Guests Power Users Replicator Users Sqlusers (7 row(s) affected)

Независимо от того, как Вы получили список пользователей и групп, SQL DMO дает Вам полный контроль. Чтобы создать новый идентификатор пользователя, надо создать новый объект SQLDMO.SQLServer, подключиться к интересующему серверу под идентификатором с достаточными правами и поработать над коллекцией Logins. Ниже приведен самый простой вариант: прямо в коде метода прописывается имя домена и группы или индивидуального пользователя. Немногим сложнее создать программу, которая будет читать текстовый файл, выводить список в диалоговом окне или предоставлять возможность выбора отдельных учетных записей или загнать весь список целиком.

Private Sub Command 1_Click()

Dim SQLServer As New SQLDMO.SQLServer

Dim NewLogin As New SQLDMO. Login

SQLServer. Connect "<имя сервера>", "<имя идентификатора;»", "<пароль>" NewLogin.Name = "DIMAA_HOME\Sqlusers" NewLogin. Type = 1

Type = 0 будет создан идентификатор типа NT User

Type = 1 будет создан идентификатор типа NT Group

Type = 2 будет создан идентификатор типа SQL Login

Для назначения типа используются константы ' SQLDMOLogin_NTUser = О,

www.books-shop.com

ГЛАВА 4: Управление системой безопасности

' SQLDMOLogin_Standard = 2, SQLServer.Logins, Add NewLogin

' Когда создается стандартный идентификатор SQL Server

' (Type = 2) - он создается без пароля, используйте метод

' SetPassword для изменения пароля

' object. SetPassword( OldValue , NewValue )

' в нашем случае OldValue = NULL

' При создании идентификаторов типов 0 и 1 контроллер домена

' должен быть доступен, так как SQL Server не поверит Вам на слово

' и обязательно проверит правильность передаваемых данных

End Sub

Замечу, что в Visual FoxPro чтение списка выполняется гораздо проще, чем в VB: все, что нужно, — создать пустой курсор и просто считать туда текстовый файл:

CREATE CURSOR Users (f1 CHAR(254), f2 CHAR(254), ; f3 CHAR(254),f4 CHAR(254),f5 CHAR(254), ; f6 CHAR(254),f7 CHAR(254),f8 CHAR(254))

SELECT users

APPEND FROM getfileo DELIMITED WITH CHARACTER ","

Разграничение доступа средствами представлений и хранимых процедур

Представления и хранимые процедуры обеспечивают дополнительные возможности по разграничению доступа к информации БД. Поскольку хранимая процедура или представление обходят разрешения на действия над объектом, Вы можете предоставить пользователям доступ к хранимой процедуре и запретить прямой доступ к таблице. Это позволит четко ограничить правила работы с данными: хранимая процедура и параметры вместо прямого доступа к таблице.

Если Вы хотите задействовать хранимые процедуры и представления, разрешите пользователям представления и не запрещайте работу с таблицами, на основе которых создано представление (Base tables).
Предыдущая << 1 .. 87 88 89 90 91 92 < 93 > 94 95 96 97 98 99 .. 187 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100