diff options
Diffstat (limited to 'doc/source/user/manage-db-and-users.rst')
-rw-r--r-- | doc/source/user/manage-db-and-users.rst | 103 |
1 files changed, 51 insertions, 52 deletions
diff --git a/doc/source/user/manage-db-and-users.rst b/doc/source/user/manage-db-and-users.rst index 38a80442..ad25b1d8 100644 --- a/doc/source/user/manage-db-and-users.rst +++ b/doc/source/user/manage-db-and-users.rst @@ -2,60 +2,70 @@ Manage databases and users on Trove instances ============================================= -Assume that you installed Trove service and uploaded images with datastore -of your choice. -This section shows how to manage users and databases in a MySQL 5.7 instance. +Assume that you installed Trove service and uploaded images with datastore of +your choice. This section shows how to manage users and databases in a MySQL +5.7 instance. -Add new database and user to an existing Trove instance -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. warning:: -Trove provides API to manage users and databases on -datastores including relational (e.g. MySQL, PostgreSQL) and non-relational -(e.g. Redis, Cassandra). Once a Trove instance with a datastore of choice is -active you can use Trove API to create new databases and/or users. + Currently, the Database and User API is only supported by mysql datastore. + For others, the recommended way is to get root password (``POST + /v1.0/{project_id}/instances/{instance_id}/root``) and communicate with the + database service directly for database and user management. + +Manage root user +~~~~~~~~~~~~~~~~ + +For all the datastores, the user could enable root and get root password for +further database operations. .. code-block:: console - $ openstack database user list db-instance + $ openstack database root enable f22ce0d9-8c9c-403a-8599-2269761a66de + +----------+--------------------------------------+ + | Field | Value | + +----------+--------------------------------------+ + | name | root | + | password | I5nPpBj1qf1eGR1idQorj1szppXGpYyYNj4h | + +----------+--------------------------------------+ + +If needed, ``openstack database root disable <instance_id>`` command could +disable the root user. + +Database and User management via Trove API +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Trove provides API to manage users and databases for mysql datastore. + +.. code-block:: console + $ openstack database user list db-instance +------+------+-----------+ | Name | Host | Databases | +------+------+-----------+ | test | % | testdb | +------+------+-----------+ - - $ openstack database user create db-instance newuser userpass --databases testdb - - $ openstack database user list db-instance - + $ openstack database user create db-instance newuser userpass --databases testdb + $ openstack database user list db-instance +---------+------+-----------+ | Name | Host | Databases | +---------+------+-----------+ | newuser | % | testdb | | test | % | testdb | +---------+------+-----------+ - - - $ mysql -h 172.24.4.199 -u newuser -p testdb + $ mysql -h 172.24.4.199 -u newuser -p testdb Enter password: - mysql> show databases; - +--------------------+ | Database | +--------------------+ | information_schema | | testdb | +--------------------+ - 2 rows in set (0.00 sec) - - $ openstack database db create db-instance newdb - - - $ openstack database db list db-instance - + $ openstack database db create db-instance newdb + $ openstack database db list db-instance +--------+ | Name | +--------+ @@ -64,8 +74,7 @@ active you can use Trove API to create new databases and/or users. | testdb | +--------+ - $ mysql -h 172.24.4.199 -u newuser -p newdb - + $ mysql -h 172.24.4.199 -u newuser -p newdb Enter password: ERROR 1044 (42000): Access denied for user 'newuser'@'%' to database 'newdb' @@ -73,15 +82,14 @@ active you can use Trove API to create new databases and/or users. Manage access to databases ~~~~~~~~~~~~~~~~~~~~~~~~~~ -With Trove API you can grant and revoke database access rights for existing users. +With Trove API you can grant and revoke database access rights for existing +users. .. code-block:: console - $ openstack database user grant access db-instance newuser newdb - - - $ openstack database user show access db-instance newuser + $ openstack database user grant access db-instance newuser newdb + $ openstack database user show access db-instance newuser +--------+ | Name | +--------+ @@ -89,30 +97,24 @@ With Trove API you can grant and revoke database access rights for existing user | testdb | +--------+ - $ mysql -h IP_ADDRESS -u newuser -p newdb + $ mysql -h IP_ADDRESS -u newuser -p newdb Enter password: - - $ openstack database user show access db-instance test - + $ openstack database user show access db-instance test +--------+ | Name | +--------+ | testdb | +--------+ - $ mysql -h IP_ADDRESS -u test -p newdb + $ mysql -h IP_ADDRESS -u test -p newdb Enter password: - ERROR 1044 (42000): Access denied for user 'test'@'%' to database 'newdb' + $ openstack database user revoke access db-instance newuser newdb - $ openstack database user revoke access db-instance newuser newdb - - - $ mysql -h IP_ADDRESS -u newuser -p newdb + $ mysql -h IP_ADDRESS -u newuser -p newdb Enter password: - ERROR 1044 (42000): Access denied for user 'newuser'@'%' to database 'newdb' @@ -123,8 +125,7 @@ Lastly, Trove provides API for deleting databases. .. code-block:: console - $ openstack database db list db-instance - + $ openstack database db list db-instance +--------+ | Name | +--------+ @@ -133,10 +134,9 @@ Lastly, Trove provides API for deleting databases. | testdb | +--------+ - $ openstack database db delete db-instance testdb - - $ openstack database db list db-instance + $ openstack database db delete db-instance testdb + $ openstack database db list db-instance +--------+ | Name | +--------+ @@ -144,7 +144,6 @@ Lastly, Trove provides API for deleting databases. | sys | +--------+ - $ mysql -h IP_ADDRESS -u test -p testdb + $ mysql -h IP_ADDRESS -u test -p testdb Enter password: - ERROR 1049 (42000): Unknown database 'testdb'
\ No newline at end of file |