Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Разработка корпоративных приложений в Access 2002 - Литвин П.

Литвин П. Разработка корпоративных приложений в Access 2002 — Спб.: Питер, 2002. — 848 c.
ISBN 5-314-00181-0
Скачать (прямая ссылка): razrabotkaprilojeniy2002.djvu
Предыдущая << 1 .. 139 140 141 142 143 144 < 145 > 146 147 148 149 150 151 .. 357 >> Следующая

' Устанавливается разрешение:
Контейнер - Tables Разрешение - adRightRead
Dim cat As ADOX.Catalog
Set cat - New ADOX.Catalog cat.ActiveConnection - CurrentProject.Connection
' Задаем значение в аргументе name и значение adlnhertiObjects ' в аргументе inherit, чтобы установить разрешения ' для контейнера, которые будут наследоваться ' создаваемыми в нем объектами.
If fRead Then cat.Users(strUser).SetPermissions
adPermObjTable. adAccessGrant. adRightRead. adlnheritObjects
Else
cat.Users(strUser).SetPermissions
adPermObjTable. adAccessDeny. adRightRead, adlnheritObjects End If
Set cat - Nothing End Sub
Управление разрешениями на доступ к базе данных с помощью ADOX
Присвоив аргументу ObjectType метода SetPermissions или GetPermissions значение adPermObjDatabase, вы получите доступ к разрешениям на саму базу данных. Приведенная в листинге 8.39 процедура SetUserDatabaseOpenADOX показывает, как, пользуясь константой adPermObjDatabase, добавить или удалить из набора разрешений указанного пользователя право на открытие базы данных.
Листинг 8.39
Sub SetUserDatabaseOpenADOXCstrUser As String. fOpen As Boolean)
' Демонстрирует синтаксис ADOX для
1 установки разрешения на открытие базы данных.
' Устанавливается разрешение:
Объект - Database Разрешение - adRightOpen
Dim cat As ADOX.Catalog
Set cat - New ADOX.Catalog cat.ActiveConnection - CurrentProject.Connection
If fOpen Then cat.Users(strUser).SetPermissions ",
adPermObjDatabase. adAccessGrant. adRightRead
Else
cat. Users (strUser). SetPermi ssi ons ".
Управление защитой с помощью ADOX
355
adPermObjDatabase. adAccessDeny. adRightRead
End If
Set cat - Nothing End Sub
Смена владельца объекта с помощью ADOX
У объекта ADOX Catalog есть метод SetObjectOwner, путем применения которого можно сменить владельца объекта. Его синтаксис подобен синтаксису метода SetPermissions. Следующий код передает права на запрос qryMenu группе Programmers: cat.SetObjectOwner "qryMenu". adPermObjTable, "Programmers"
Процедура ChangeOwnerOfTableADOX, приведенная в листинге 8.40, демонстрирует использование этого метода с целью замены владельца таблицы.
Листинг 8.40
Sub ChangeOwnerOfTableADOXO
' Демонстрирует синтаксис AD0X ' для смены владельца таблицы.
' Изменяется владелец:
Объект - tbICustomer
Новый владелец - Drones
Dim cat As ADDX.Catalog
Set cat - New ADOX.Catalog cat.ActiveConnection - CurrentProject.Connection
cat.SetObjectOwner "tbICustomer". adPermObjTable. "Drones"
Set cat - Nothing End Sub
А в листинге 8.41 использована процедура ChangeOwnerOfFormADOX, изменяющая владельца формы Access.
Листинг 8.41
Public Const JET_SECURITY_FORMS - _
'{с49с842е-9dcb-lldl-9f0a-00c04fc2c2e0}"
Sub ChangeOwnerOfFormADDXO
' Демонстрирует синтаксис ADOX
1 для смены владельца формы.
' Изменяется владелец:
' Объект - frmCustomer
' Новый владелец - Drones
Dim cat As ADOX.Catalog
Set cat - New ADOX.Catalog cat.ActiveConnection - CurrentProject.Connection
cat.SetObjectOwner "frmCustonier".
adPermObjProviderSpecific. "Drones", JETSECURITYFORMS
Set cat - Nothing End Sub
356
Глава 8 • Защита приложений
ПРИМЕЧАНИЕ
Ошибка, не позволяющая устанавливать разрешения на объекты Access с помощью ADOX 2.x, не мешает менять их владельцев.
Управление системой защиты Jet с помощью SQL
До появления Access 2000 управлять системой защиты Jet с помощью SQL было невозможно. Однако в Access 2000/2002 язык SQL Microsoft Jet был значительно расширен, благодаря чему его возможности стали намного разнообразнее. Новые дополнения этого языка известны как расширения ANSI SQL-92 ядра базы данных Microsoft Jet 4.0. Мы подробно рассказывали о них в книге "Access 2002: разработка настольных приложений". А сейчас нас в первую очередь интересует вопрос о том, как с помощью обновленного языка SQL ядра Microsoft Jet управлять системой защиты.
Инструкции SQL ядра Microsoft Jet, имеющие отношение к системе защиты, перечислены в табл. 8.9.
Таблица 8.9. Расширения ANSI SQL-92 ядра Microsoft Jet 4.0 по управлению защитой
Инструкция SQL Описание ADD USER Добавляет пользователя в группу ALTER DATABASE Изменяет пароль базы данных ALTER USER Изменяет пароль пользователя CREATE GROUP Добавляет в рабочую группу новую учетную запись группы CREATE USER Добавляет в рабочую группу новую учетную запись пользователя DROP GROUP Удаляет учетную запись группы DROP USER Удаляет учетную запись пользователя GRANT Предоставляет разрешения пользователю или группе REVOKE Лишает разрешений пользователя или группу В целом, поддержка защиты в SQL слабее, чем в DAO или ADOX. В частности, SQL не позволяет получить имена существующих пользователей и групп, а также списки предоставленных им разрешений на объекты. С другой стороны, многие разработчики, и особенно профессионалы SQL, без сомнения, найдут управление защитой посредством SQL гораздо более простым и удобным.
ПРИМЕЧАНИЕ-
Чтобы получить возможность пользоваться расширениями ANSI SQL-92 ядра SQL Microsoft Jet 4.0, необходимо иметь ADO и Microsoft Jet 4.0 OLE DB Provider. В Access 2002 эти расширения стали доступны из конструктора запросов. По умолчанию поддержка расширений ANSI SQL-92 отключена. Для того чтобы при работе с текущей базой данных они были доступны, выберите команду Tools > Options. В появившемся диалоговом окне Options перейдите на вкладку Tables/Queries и установите флажок This Database, который находится под надписью SQL Server Compatible Syntax (ANSI 92). После изменения режима запроса для базы данных Access попросит вас подтвердить внесение изменений, закроет базу данных, выполнит ее сжатие и загрузит таковую вновь, используя на этот раз новый режим запроса. DAO указанные расширения не поддерживает.
Предыдущая << 1 .. 139 140 141 142 143 144 < 145 > 146 147 148 149 150 151 .. 357 >> Следующая