Платформы корпоративных информационных систем

         

Система безопасности



Система безопасности

Система безопасности, поддерживаемая сервером mSQL, может, в зависимости от точки зрения, показаться как достоинством, так и недостатком. С одной стороны, ей легче управлять, чем в любой другой РСУБД. Эта легкость достигается благодаря упрощенности. К сожалению, такая упрощенность недопустима для сколько-нибудь сложных приложений баз данных.

mSQL управляет безопасностью с помощью файла msql.acl, который находится в каталоге установки mSQL. Расширение .acl образовано от «Access Control List» - «Список контроля доступа» - очень гибкой системы авторизации, с некоторого времени используемой в ряде операционных систем и приложений. Формат файла msql.acl следующий:

database=mydata

read=*

write=*

host=*

access=local,remote

database=mynewdata read=*


wriite=admin,root host=* access=local

Для каждой базы данных есть ряд опций. Строки read и write указывают, каким пользователям вы хотите предоставить право чтения (SELECT) базы или записи (INSERT, UPDATE, DELETE) в базу данных. Строка host показывает, какие машины могут иметь удаленный доступ к базе. Если строка access содержит «local», значит, разрешены локальные подключения через сокеты Unix, а если содержит «remote», то разрешены удаленные подключения по TCP.

В файле ACL допустим символ-маска «*» в полях read, write и host. Поэтому можно иметь такой ACL:

database=mynewdata

read=*

write=msql*

host=*. client.com,"isp.com

access=local, remote

Этот ACL означает, что любой пользователь любой машины в client.com, а также любой пользователь любой машины в любом домене, оканчивающемся на isp.com - например, wisp.com или lisp.com, - может иметь подключение к базе данных. Эти пользователи могут осуществлять чтение данных, но только пользователи, чьи имена начинаются с «msql», могут вносить в нее изменения.

По умолчанию все права отсутствуют, поэтому если вы пропустите строку write, никто не сможет модифицировать базу данных. Отдельные пользователи и машины могут исключаться с помощью префикса «-» перед их именем. Рассмотрим пример:

dataoase=moredata

read=-bob,*

write=jane

host=-junk. isp.com,*, isp.com

access=local,remote

Этот ACL разрешает подключение всем хостам домена isp.com, за исключением junk.isp.com. Кроме того, чтение разрешено всем пользователям, кроме пользователя «bob». Только «jane» имеет право записи в базе данных. Поскольку по умолчанию установлен отказ в доступе, конкретно указывать, кому отказано в доступе, как «bob'y»» бессмысленно, если строка не содержит также символа «*».

mSQL действует согласно первому обнаруженному соответствию. Например, строка read=*,-bob дает пользователю «bob» право чтения.

Как указывалось ранее в этой главе, команда msqladmin reload перезагружает ACL после внесения вами изменений. Если вы ее не выполните, внесенные изменения будут учтены только при следующем перезапуске сервера.



Содержание раздела