Мир InterBase


Организация пользователей в группы с помощью ролей


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

  • Необходимо создать роль.
  • Выдать этой роли достаточные права.
  • Назначить конкретным пользователям эту роль.
  • При подсоединении к базе данных указать, помимо имени пользователя, ту роль, права которой будет иметь в течение времени данного соединения пользователь. То, что роль явно указывается при подсоединении, позволяет иметь для каждого пользователя набор ролей и менять их при каждом сеансе в зависимости от характера выполняемой работы.
  • Приведем пример использования ролей Для начала создадим роль с именем READER, которая будет иметь права для чтения данных:

    CREATE ROLE READER;

    Выдадим этой роли права на чтение таблицы Table_example:

    GRANT Select ON Table_example TO READER;

    Присвоим эту роль пользователю TESTUSER, чтобы он мог указать ее при подсоединении к базе данных (если этого не сделать, то возникнет ошибка авторизации):

    GRANT READER TO testuser;

    Теперь мы можем указать эту роль при подсоединении к базе данных. Все современные библиотеки доступа, описанные в данной книге, имеют специальную •опцию для использования роли пользователя в течение соединения. За подробностями обращайтесь к соответствующим главам. В общем виде, например при подсоединении через isql, указание роли выглядит так:

    CONNECT 'server:Disk\Path\database.gdb' USER 'username'

    PASSWORD 'password' ROLE ' rolename';

    Для нашего примера и тестовой базы данных firstbase.gdb строка соединения по TCP/IP будет выглядеть следующим образом:

    CONNECT 'localhost:C:\Database\firstbase.gdb' USER 'sysdba'

    PASSWORD 'masterkey' ROLE 'READER';

    Использование ролей, которое возможно в InterBase начиная с версии 5.х.. позволяет значительно упростить управление правами пользователей InterBase.



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