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

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

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

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

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

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

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

С помощью DAO можно просматривать и модифицировать разрешения не только на таблицы, но и на другие объекты Access. Например, процедура SetUser- ExecFormDAO из листинга 8.17 предоставляет или удаляет разрешение Execute на форму frmCustomer.
Листинг 8.17
Sub SetUserExecFormDAOtstrUser As String. fExec As Boolean)
' Демонстрирует синтаксис DAO для ' установки или удаления разрешения на открытие формы.
' Устанавливается разрешение:
Object - frmCustomer Permission - acSecFrmRptExecute
336
Глава 8 • Защита приложений
Dim db As DAD.Database Dim doc As DAD.Document
Set db - CurrentDbO
Set doc - db.ContainerslForms.DocumentslfrmCustomer
doc.UserName - strUser
If fExec Then
doc.Permissions - _ doc.Permissions Or acSecFrmRptExecute
Else
doc.Permissions - _
doc.Permissions And Not acSecFrmRptExecute End If
Set doc - Nothing Set db - Nothing End Sub
Установка разрешений на новые объекты с помощью DAO
Для установки разрешений на любые новые объекты предназначено свойство Permissions родительского объекта Container. Но прежде чем это свойство будет установлено, необходимо присвоить свойству Inherit объекта Container значение Тrue (это означает, что объекты могут наследовать разрешения своего контейнера). Данный прием демонстрирует приведенная в листинге 8.18 процедура SetUser- ReadNewTablesDAO.
Листинг 8.18
Sub SetUserReadNewTab1esDA0(strUser As String, fRead As Boolean)
' Демонстрирует синтаксис DAD для установки ' или удаления разрешения на чтение для контейнера таблиц.
' Устанавливается разрешение:
Контейнер - Tables Разрешение - dbSecRetrieveData
Dim db As DAO.Database Dim cnt As DAO.Container
Set db - CurrentDbO Set cnt - db.Containers.'Tables cnt.Inherit - True
cnt.UserName - strUser
If fRead Then
cnt.Permissions - _ cnt.Permissions Or dbSecRetrieveData
Else
cnt.Permissions - _
cnt.Permissions And Not dbSecRetrieveData End If
Set cnt - Nothing Set db - Nothing End Sub
Управление защитой с помощью РАО
337
Управление разрешениями на базу данных с помощью DAO
Для просмотра и установки разрешений на базу данных используется документ MSysDB контейнера Database. Удалив разрешение dbSecDBOpen данного документа, вы лишите пользователя права открывать базу данных. Рассмотрим в качестве примера процедуру SetUserDatabaseOpenDAO из модуля basSecurityExamplesDAO, приведенную в листинге 8.19.
Листинг 8.19
Sub SetUserDatabaseOpenDAOCstrUser As String, fOpen As Boolean)
' Демонстрирует синтаксис DAO для установки ' разрешения на открытие базы данных.
1 Устанавливается разрешение:
Объект - Database Разрешение - dbSecDBDpen
Dim db As DAO.Database Dim doc As DAO.Document
Set db - CurrentDbO Set doc - db.Containers!Databases.Documents!MSysDB
doc.UserName - strUser
If fDpen Then doc.Permissions - _
doc.Permissions Or dbSecDBOpen
Else
doc.Permissions - _
doc.Permissions And Not dbSecDBOpen
End If
Set doc - Nothing Set db - Nothing End Sub
Любой пользователь, который попытается открыть базу данных, не имея разрешения dbSecDBOpen, увидит только диалоговое окно (рис. 8.9).
*J
УоЙо' not:fiflve tHe'recpssary perrnissicns^buse the'E^ADHV2\Ch08\aiQ3lmdbV6b)ect.-<K3VeVour system ¦; ¦wwi' ¦ Y^adminlstrator or the person wha created this object establish the appropriate permissions focyguivrssiasrv
OK? 's
)! H"ip
Рис. 8.9. Диалоговое окно, которое при попытке открыть базу данных увидит пользователь, не имеющий на нее разрешения Open
ВНИМАНИЕ
Имейте в виду, что пользователь, который входит в группу Users или в какую-либо другую группу, имеющую разрешение dbSecDBOpen, сможет беспрепятственно открыть базу данных.
338
Глава 8 ¦ Защита приложений
Как с помощью DAO запретить создание новых баз данных
В Jet определено одно важное разрешение, которого нет в пользовательском интерфейсе Access, а именно dbSecDBCreate. Если вы с помощью DAO лишите контейнер Databases для файла рабочей группы (обычно это SYSTEM.MDW) данного разрешения, пользователи не смогут создавать новые базы данных. Это выполняет функция adhSetDbCreate из модуля basGenencDAOSecurityUtilities. Ей передается имя пользователя или группы и логическое значение, указывающее, что вы хотите сделать: запретить (False) или, наоборот, разрешить (True) создание базы данных.
ПРИМЕЧАНИЕ
Если вы захотите с помощью этой функции лишить пользователя права создавать базы данных, сначала проверьте, нет ли у него неявного разрешения dbSecDBCreate. Если такое разрешение имеется, вам нужно будет лишить этого разрешения группу Users и все остальные группы, в которые входит данный пользователь.
Код функции adhSetDbCreate приведен в листинге 8.20. Листинг 8.20
Function adhSetDbCreateCByVal strAccount As String,
ByVal fEnable As Boolean) As Boolean
' Предоставляет или отменяет разрешение
1 на создание новых баз данных.
Dn Error GoTo adhSetDbCreateErr
Dim strSystemOB As String Dim dbSys As DAD.Database Dim cnt As DAO.Container Dim strMsg As String
Const adhcProcName - "adhSetDbCreate"
Предыдущая << 1 .. 132 133 134 135 136 137 < 138 > 139 140 141 142 143 144 .. 357 >> Следующая