# Права и роли пользователя базы данных

В Plesk предусмотрены роли для пользователей баз данных MySQL и Microsoft SQL Server. Роли работают как шаблоны, помогающие предоставлять права пользователям баз данных. Поддерживаются следующие роли пользователей баз данных: Чтение и запись (используется по умолчанию), Только чтение и Только запись. Для каждой роли существует определенный набор прав, который при ее присвоении предоставляется учетной записи пользователя базы данных. Вы можете изменять наборы прав для каждой из ролей.

Кроме того, MySQL поддерживает Персональную роль с пользовательским набором прав. Пользователи Microsoft SQL Server не могут изменять наборы прав, предоставленных при присвоении роли.

Вы можете не предоставлять и запретить пользователям Plesk предоставлять какое-либо право.

Более подробную инормацию о том, как выбирать роли для пользователей баз данных на странице Сайты и домены > Базы данных > Управление пользователями, смотрите в разделе Управление пользователями базы данных. Обратите внимание, что пользователям баз данных в подписке администратора предоставляются глобальные права в дополнение к правам на таблицы баз данных.

## Роли пользователей баз данных MySQL

В Plesk с MySQL пользователи могут выбирать роли для пользователей баз данных, а также добавлять и удалять отдельные права.

Наборы прав MySQL для каждой роли по умолчанию перечислены ниже.

Право | Чтение и запись | Только чтение | Только запись
--- | --- | --- | ---
Select | ➕ | ➕ | ➖
Insert | ➕ | ➖ | ➕
Update | ➕ | ➖ | ➕
Delete | ➕ | ➖ | ➕
Create | ➕ | ➖ | ➕
Drop | ➕ | ➖ | ➕
Alter | ➕ | ➖ | ➕
Index | ➕ | ➖ | ➕
Create Temporary Tables | ➕ | ➖ | ➕
Lock Tables | ➕ | ➖ | ➕
Create View | ➕ | ➖ | ➕
Show View | ➕ | ➕ | ➖

Чтобы изменить наборы прав по умолчанию, внесите изменения в файл panel.ini, перечислив все права для каждой из ролей, которую хотите изменить.

Помните, что клиенты Plesk при этом все же смогут выбирать больше прав, чем вы указали в файле `panel.ini`, если вы не запретили их использование (смотрите далее на этой странице).

Например:

    [databaseManagement]
    features.roles.mysql.readWrite = Select,Update,Insert
    features.roles.mysql.readOnly = Select
    features.roles.mysql.writeOnly = Update

Примечание

Изменение набора прав для роли (например, роли Чтение и запись) не влияет на права уже существующих пользователей базы данных MySQL с этой ролью. Роль таких пользователей базы данных автоматически изменится на Персональную.

Как отозвать у всех пользователей какое-либо право

Вам может потребоваться отозвать какое-либо право, например, права Delete, у всех пользователей баз данных. Чтобы отозвать право, пропишите список прав MySQL в файле panel.ini, не включая в него право, которое вы хотите отозвать.

Например:

    [databaseManagement]
    features.privileges.mysql.dataAccess = Select, Insert, Update, Delete
    features.privileges.mysql.structureAccess = Create, Drop, Alter, Index, Create Temporary Tables, Lock Tables, Create View, Show View

Указанные в списке права будут отображаться в интерфейсе Plesk (Сайты и домены > Базы данных > Управление пользователями). Пользователи смогут предоставлять или отзывать только перечисленные права. Если соответствующего права нет в списке, с точки зрения Plesk это действие запрещено пользователям баз данных.

Примечание

Право отзывается только после того, как пользователь Plesk сохранит какие-либо изменения в настройках пользователя базы данных: (Сайты и домены > Базы данных > Управление пользователями > имя пользователя > ОК).

## Роли пользователей баз данных Microsoft SQL Server

В Plesk с сервером баз данных Microsoft SQL Server пользователи могут выбирать роли (Чтение и запись, Только чтение, Только запись), но не могут добавлять или удалять отдельные права (роли на уровне базы данных SQL Server). Права не отображаются в интерфейсе Plesk.

Ниже перечислены права, предоставленные по умолчанию каждой роли в Microsoft SQL Server:

Право | Чтение и запись | Только чтение | Только запись
--- | --- | --- | ---
db_backupoperator | ➕ | ➕ | ➕
db_datareader | ➕ | ➕ | ➖
db_datawriter | ➕ | ➖ | ➕
db_ddladmin | ➕ | ➖ | ➕

Чтобы изменить набор прав по умолчанию для какой-либо роли, внесите изменения в файл panel.ini, перечислив необходимые права.

Например:

    [databaseManagement]
    features.roles.mssql.readWrite = db_datareader,db_backupoperator,db_ddladmin
    features.roles.mssql.readOnly = db_datareader,db_backupoperator
    features.roles.mssql.writeOnly = db_datawriter

Примечание

При изменении набора прав для роли изменяются права существующих пользователей базы данных с этой ролью. У всех существующих и вновь создаваемых пользователей с этой ролью будет набор прав, который вы указали в `panel.ini`.

Восстановление прав по умолчанию для пользователей Microsoft SQL Server

Для каждой роли пользователей баз данных существует свой набор прав по умолчанию (роли пользователей на уровне базы данных SQL Server). Чтобы восстановить для существующих пользователей баз данных набор прав по умолчанию (в соответствии с их ролью), используйте следующую команду:

`%plesk_dir%\bin\repair.exe --update-mssql-users-permissions [-database-server <name>] [-database-name <name>]`

Примечание

Если вы изменили набор прав для роли (например, роли Чтение и запись) в файле `panel.ini`, в результате работы команды `--update-mssql-users-permissions` будет восстановлен набор указанных в файле прав, а не набор по умолчанию (например, набор прав по умолчанию для роли Чтение и запись: `db_datareader,db_datawriter,db_backupoperator,db_ddladmin`).