Está en la página 1de 4

Search

Login | Register

The world's most popular open source database Developer Zone MySQL Server
Archives About

Downloads
MySQL Enterprise

Documentation
MySQL Workbench MySQL Cluster MySQL Connectors Topic Guides Expert Guides Other Docs

Documentation Library Table of Contents MySQL 5.0 Manual

MySQL 5.0 Reference Manual :: 5 Administracin de bases de datos :: 5.7 Gestin de la cuenta de usuario MySQL :: 5.7.2 Aadir nuevas cuentas de usuario a MySQL

5.7.2. Aadir nuevas cuentas de usuario a MySQL


Puede crear cuentas MySQL de dos formas:

5.7.1 Nombres de usuario y contraseas de MySQL 5.7.3 Eliminar cuentas de usuario de MySQL

Search manual:

Go

Usando comandos GRANT Section Navigation [Toggle] 5.7 Gestin de la cuenta de usuario MySQL El mtodo preferido es usar comandos GRANT , ya que son ms concisos 5.7.1 Nombres de usuario y y menos propenso a errores. . GRANT est disponible desde MySQL contraseas de MySQL 3.22.11; su sintaxis se describe en Seccin 13.5.1.3, Sintaxis de GRANT 5.7.2 Aadir nuevas cuentas de usuario a MySQL y REVOKE. 5.7.3 Eliminar cuentas de usuario de Otra opcin para crear cuentas es usar uno de los diversos programas MySQL proporcionados por terceras partes que ofrecen capacidades para 5.7.4 Limitar recursos de cuentas 5.7.5 Asignar contraseas a cuentas administradores de MySQL. phpMyAdmin es una de ellos. 5.7.6 Guardar una contrasea de forma Los siguientes ejemplos muestran cmo usar el programa cliente mysql segura para aadir nuevos usuarios. Estos ejemplos asumen que los permisos 5.7.7 Usar conexiones seguras se inicializan segn las pautas descritas en Seccin 2.9.3, Hacer Manipulando las tablas de permisos MySQL directamente seguras las cuentas iniciales de MySQL. Esto significa que para realizar cambios, debe conectar al servidor MySQL como el usuario root , y la cuenta root debe tener el privilegio INSERT para la base de datos mysql y el permiso administrativo RELOAD. En primer lugar, use el programa mysql para conectar al servidor como el usuario root : shell> mysql --user=root mysql Si ha asignado una contrasea a la cuenta root, necesitar la opcin --password o -p para este comando mysql y tambin para los mostrados a continuacin en esta seccin. Tras la conexin al servidor como root, puede aadir nuevas cuentas. El siguiente comando usa GRANT para inicializar nuevas cuentas: mysql> -> mysql> -> mysql> mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' IDENTIFIED BY 'some_pass' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' IDENTIFIED BY 'some_pass' WITH GRANT OPTION; GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost'; GRANT USAGE ON *.* TO 'dummy'@'localhost';

Las cuentas creadas con estos comandos GRANT tienen las siguientes propiedades: Dos de las cuentas tienen un nombre de usuario de monty y una contrasea de some_pass. Ambas cuentas son cuentas de superusuario con plenos permisos para hacer cualquier cosa. Una cuenta ('monty'@'localhost') puede usarse slo cuando se conecte desde el equipo local. La otra ('monty'@'%') puede usarse para conectarse desde cualquier otro equipo. Note que es necesario tener ambas cuentas para que monty sea capaz de conectarse desde cualquier sitio como monty. Sin la cuenta localhost, la cuenta annima para localhost creada por mysql_install_db tendra precedencia cuando monty conecte desde el equipo local. Como resultado, monty se tratara como un usuario annimo. La razn para ello es que el usuario annimo tiene un valor ms especfico en la columna Host que la cuenta 'monty'@'%' y por lo tanto toma precedencia en la ordenacin de la tabla user. (La ordenacin de la tabla

converted by Web2PDFConvert.com

user se discute en Seccin 5.6.5, Control de acceso, nivel 1: Comprobacin de la conexin.) Una cuenta tiene un nombre de usuario de admin y no tiene contrasea. Esta cuenta puede usarse slo desde el equipo local. Tiene los privilegios administrativos RELOAD y PROCESS . stos permiten al usuario admin ejecutar los comandos mysqladmin reload, mysqladmin refresh, y mysqladmin flush- xxx , as como mysqladmin processlist . No se dan permisos para acceder a ninguna base de datos. Puede aadir tal privilegio posteriormente mediante un comando GRANT adicional. Una cuenta tiene un nombre de usuario de dummy sin contrasea. Esta cuenta puede usarse slo desde el equipo local. No tiene ningn privilegio. El permiso USAGE en el comando GRANT permite crear una cuenta sin darle ningn privilegio. Tiene el efecto de inicializar todos los privilegios globales a 'N'. Se asume que se otorgarn privilegios especficos posteriormente. Como alternativa a GRANT, puede crear la misma cuenta directamente mediante comandos INSERT y despus diciendo al servidor que recargue las tablas de permisos usando FLUSH PRIVILEGES: shell> mysql> -> -> mysql> -> -> mysql> -> mysql> -> mysql> mysql --user=root mysql INSERT INTO user VALUES('localhost','monty',PASSWORD('some_pass'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); INSERT INTO user VALUES('%','monty',PASSWORD('some_pass'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); INSERT INTO user SET Host='localhost',User='admin', Reload_priv='Y', Process_priv='Y'; INSERT INTO user (Host,User,Password) VALUES('localhost','dummy',''); FLUSH PRIVILEGES;

La razn de usar FLUSH PRIVILEGES al crear cuantas con INSERT es decir al servidor que vuelva a leer las tablas de permisos. De otro modo, los cambios no se tienen en cuenta hasta que se reinicie el servidor. Con GRANT, FLUSH PRIVILEGES no es necesario. La razn para usar la funcin PASSWORD() con INSERT es cifrar las contraseas. El comando GRANT cifra la contrasea, as que PASSWORD() no es necesario. El valor 'Y' activa permisos para las cuentas. Para la cuenta admin , puede emplear la sintaxis ms clara extendida INSERT usando SET. En el comando INSERT para la cuenta dummy account, slo las columnas Host, User, y Password en el registro de la tabla user tienen valores asignados. Ninguna de las columnas de permisos se asignan explcitamente, as que MySQL les asigna a todas el valor por defecto de 'N'. Esto es equivalente al funcionamiento de GRANT USAGE. Para inicializar una cuenta de super usuario, slo es necesario crear una entrada en la tabla user con las columnas de permisos inicializadas a 'Y'. Los privilegios de la tabla user son globales, as que no se necesitan registros en ninguna de las otras tablas de permisos. Los siguientes ejemplos crean tres cuentas y les dan acceso a bases de datos especficas. Cada una de ellas tiene un nombre de usuario custom y contrasea obscure. Para crear las cuentas con GRANT, use los siguientes comandos: shell> mysql> -> -> -> mysql> -> -> -> mysql> -> -> -> mysql --user=root mysql GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON bankaccount.* TO 'custom'@'localhost' IDENTIFIED BY 'obscure'; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON expenses.* TO 'custom'@'whitehouse.gov' IDENTIFIED BY 'obscure'; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON customer.* TO 'custom'@'server.domain' IDENTIFIED BY 'obscure';
converted by Web2PDFConvert.com

Las tres cuentas pueden usarse de la siguiente manera: La primera cuenta puede acceder a la base de datos bankaccount, pero slo desde el equipo local. La segunda cuenta puede acceder la base de datos expenses, pero slo desde el equipo whitehouse.gov. La tercera cuenta puede acceder la base de datos customer, pero slo desde el equipo server.domain. Para inicializar las cuentas custom sin usar GRANT, use los comandos INSERT como se explica para modificar las tablas de permisos directamente: shell> mysql> -> mysql> -> mysql> -> mysql> -> -> -> -> mysql> -> -> -> -> mysql> -> -> -> -> mysql> mysql --user=root mysql INSERT INTO user (Host,User,Password) VALUES('localhost','custom',PASSWORD('obscure')); INSERT INTO user (Host,User,Password) VALUES('whitehouse.gov','custom',PASSWORD('obscure')); INSERT INTO user (Host,User,Password) VALUES('server.domain','custom',PASSWORD('obscure')); INSERT INTO db (Host,Db,User,Select_priv,Insert_priv, Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES('localhost','bankaccount','custom', 'Y','Y','Y','Y','Y','Y'); INSERT INTO db (Host,Db,User,Select_priv,Insert_priv, Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES('whitehouse.gov','expenses','custom', 'Y','Y','Y','Y','Y','Y'); INSERT INTO db (Host,Db,User,Select_priv,Insert_priv, Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES('server.domain','customer','custom', 'Y','Y','Y','Y','Y','Y'); FLUSH PRIVILEGES;

Los primeros tres comandos INSERT aaden registros en la tabla user que permiten al usuario custom conectar desde los equipos con la contrasea dada, pero no otorga privilegios blobales (todos los privilegios se inicializan al valor por defecto 'N'). Los siguientes tres comandos INSERT aaden registros en la tabla db que otorgan privilegios a custom para las bases de datos bankaccount, expenses, y customer, pero slo cuando se accede desde los equipos apropiados. Como siempre, cuando modifique las tablas de permisos directamente, debe decirle al servidor que las recargue con FLUSH PRIVILEGES para que los cambios en los permisos tengan efecto. Si quiere dar a un usuario especfico acceso desde todas las mquinas dentro de un dominio dado (por ejemplo, mydomain.com), puede realizar un comando GRANT que use el carcter comodn '%' en la parte del equipo del nombre de cuenta: mysql> GRANT ... -> ON *.* -> TO 'myname'@'%.mydomain.com' -> IDENTIFIED BY 'mypass'; Para hacer lo mismo modificando las tablas de permisos directamente, haga lo siguiente: mysql> INSERT INTO user (Host,User,Password,...) -> VALUES('%.mydomain.com','myname',PASSWORD('mypass'),...); mysql> FLUSH PRIVILEGES; sta es una traduccin del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL est escrito en ingls, y esta traduccin no necesariamente est tan actualizada como la versin original. Para cualquier sugerencia sobre la traduccin y para sealar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.
Copyright 1997, 2011, Oracle and/or its affiliates. All rights reserved. Legal Notices

Top / Previous / Next / Up / Table of Contents


Developer Zone Downloads Documentation About MySQL Legal

converted by Web2PDFConvert.com

Documentation Developer Articles News & Events Forums Lists Bugs Worklog Planet MySQL Labs

MySQL Community Server MySQL Proxy MySQL Cluster MySQL Workbench MySQL Connectors Archives

MySQL Reference Manuals MySQL Workbench Expert Guides Topic Guides MySQL Cluster Other Documents About Archives

Contact Us How to Buy Partners Job Opportunities Site Map

Legal Policies Your Privacy Rights Terms of Use Trademark Policy Contributor Agreement

2013, Oracle Corporation and/or its affiliates

converted by Web2PDFConvert.com

También podría gustarte