Permisos y roles de los usuarios de bases de datos
Plesk ofrece roles de usuario para los usuarios de bases de datos de MySQL y Microsoft SQL Server. Este rol actúa como plantillas que facilitan la asignación de permisos a un usuario de una base de datos. Se soportan los siguientes roles de usuario de base de datos: Lectura y escritura (usado de forma predeterminada), Solo lectura y Sólo escritura. Cada rol presenta un conjunto de privilegios predeterminados que se conceden al usuario de la base de datos al que se le asigne. Si lo desea, puede editar los conjuntos de privilegios correspondientes a los distintos roles.
Asimismo, MySQL ofrece soporte para el rol Personalizado, que corresponde a un grupo de privilegios definidos por los usuarios. Los usuarios de SQL Server no pueden modificar los conjuntos de permisos incluidos en los roles.
Si lo desea, puede denegar un permiso y prohibir a los usuarios de Plesk que lo concedan.
Para más información sobre cómo seleccionar roles para usuarios de bases de datos, vaya a Sitios web y dominios > Bases de datos > Administración de usuarios y consulte la sección Administración de cuentas de usuarios de bases de datos. Tenga en cuenta que los usuarios de bases de datos de las suscripciones del administrador pueden recibir privilegios globales además de los derechos sobre las tablas de bases de datos.
Roles de usuarios de bases de datos MySQL
En Plesk con MySQL, un usuario puede seleccionar roles para los usuarios de bases de datos, así como añadir o eliminar privilegios de forma independiente.
A continuación se enumeran los privilegios de MySQL asignados por omisión a cada rol.
Privilegio | Lectura y escritura | Sólo lectura | Sólo escritura |
---|---|---|---|
Seleccionar | ➕ | ➕ | ➖ |
Insertar | ➕ | ➖ | ➕ |
Actualizar | ➕ | ➖ | ➕ |
Eliminar | ➕ | ➖ | ➕ |
Crear | ➕ | ➖ | ➕ |
Drop | ➕ | ➖ | ➕ |
Alter | ➕ | ➖ | ➕ |
Index | ➕ | ➖ | ➕ |
Create Temporary Tables | ➕ | ➖ | ➕ |
Lock Tables | ➕ | ➖ | ➕ |
Create view | ➕ | ➖ | ➕ |
Show view | ➕ | ➕ | ➖ |
Para modificar el grupo predeterminado de privilegios, edite el archivo panel.ini y liste los nombres de los privilegios para cada uno de los roles que desee modificar.
Recuerde que los clientes de Plesk seguirán pudiendo seleccionar más privilegios que los que usted haya especificado en panel.ini
de no ser que usted lo prohíba de forma expresa (ver información más adelante).
Por ejemplo:
[databaseManagement]
features.roles.mysql.readWrite = Select,Update,Insert
features.roles.mysql.readOnly = Select
features.roles.mysql.writeOnly = Update
Nota: al cambiar los conjuntos de privilegios de un rol (por ejemplo, Lectura y escritura), no se alterarán en modo alguno los privilegios de los usuarios de la base de datos MySQL ya existentes en ese rol. El rol de dichos usuarios pasará automáticamente a ser Personalizado.
Cómo denegar un privilegio a todos los usuarios
Puede darse el caso de que necesite denegar un privilegio determinado (por ejemplo, el privilegio Delete) a todos los usuarios de bases de datos. Para denegar un privilegio, especifique la lista de privilegios MySQL del archivo panel.ini, omitiendo el privilegio que desea denegar.
Por ejemplo:
[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
Los privilegios especificados se muestran en la IU de Plesk (Sitios web y dominios > Bases de datos > Administración de usuarios). Los usuarios podrán conceder o denegar únicamente los privilegios especificados. Si un privilegio no se encuentra en la lista, Plesk considerará que su uso por parte de los usuarios de bases de datos está denegado.
Nota: un privilegio pasará a estar denegado únicamente cuando un usuario de Plesk guarde cambios efectuados en la configuración del usuario de bases de datos (Sitios web y dominios > Bases de datos > Administración de usuarios> haga clic en un nombre de usuario > haga clic en ACEPTAR).
Roles de usuarios de bases de datos de Microsoft SQL Server
En Plesk con Microsoft SQL Server, los usuarios pueden seleccionar roles (Lectura y escritura, Sólo lectura, Sólo escritura), pero no pueden añadir o eliminar permisos de forma independiente (roles a nivel de base de datos de SQL Server). Los permisos no se muestran en la IU de Plesk.
A continuación se enumeran los permisos predeterminados para cada rol en Microsoft SQL Server:
Permiso | Lectura y escritura | Sólo lectura | Sólo escritura |
---|---|---|---|
db_backupoperator | ➕ | ➕ | ➕ |
db_datareader | ➕ | ➕ | ➖ |
db_datawriter | ➕ | ➖ | ➕ |
db_ddladmin | ➕ | ➖ | ➕ |
Para modificar el grupo predeterminado de permisos para cada rol, edite el archivo panel.ini y liste los nombres de los permisos.
Por ejemplo:
[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
Nota: los cambios que realice en el conjunto de permisos de un rol también afectarán a los usuarios de bases de datos ya existentes. Tanto los usuarios recién creados como los ya existentes que posean ese rol dispondrán de los permisos especificados en el archivo panel.ini
.
Cómo recuperar los permisos predeterminados de los usuarios de Microsoft SQL Server
Cada rol de usuario de bases de datos tiene un conjunto de permisos predeterminado (roles de usuario a nivel de base de datos de SQL Server). Para restablecer los permisos de los usuarios de bases de datos ya existentes a sus valores predeterminados (en función de su rol), ejecute el siguiente comando:
%plesk_dir%\bin\repair.exe --update-mssql-users-permissions [-database-server <name>] [-database-name <name>]
Nota: si ha modificado los permisos de un rol (por ejemplo, el rol Lectura y escritura) en panel.ini
, el comando --update-mssql-users-permissions
utilizará el conjunto de permisos que haya especificado en el archivo, en lugar de restaurar los valores predeterminados (por ejemplo, el conjunto predeterminado para Lectura y escritura es db_datareader,db_datawriter,db_backupoperator,db_ddladmin
).