Home  >  Article  >  Backend Development  >  User management and permissions and settings - mysql

User management and permissions and settings - mysql

小云云
小云云Original
2017-11-16 13:27:082227browse

MySQL is one of the most popular database management systems in the world. The book starts with an introduction to simple data retrieval and gradually goes into more complex content, including the use of joins, subqueries, regular expressions and full-text based searches, stored procedures, cursors, triggers, table constraints, etc. Through highlighted chapters, the knowledge that readers should master is described in a clear, systematic and concise manner, so that they can immediately and inadvertently increase their skills. This section mainly describes the related commands of mysql user management and permission settings.

User Management

mysql>use mysql;

View

mysql>select host,user,password from user ;

Create

mysql>create user zx_root;

Modify

mysql>rename user feng to newuser; //mysql 5之后可以使用,之前需要使用update 更新user表

Delete

mysql>drop user newuser;   //mysql5之前删除用户时必须先使用revoke 删除用户权限,然后删除用户,mysql5之后drop 命令可以删除用户的同时删除用户的相关权限

Change password

mysql>set password for zx_root =password('xxxxxx');
mysql>update  mysql.user  set  password=password('xxxx')  where user='otheruser'


View user permissions

mysql>show grants for zx_root;

Grant permissions

mysql>grant select on dmc_db.*  to zx_root;

Recycle permissions

mysql>revoke  select on dmc_db.*  from  zx_root;  //如果权限不存在会报错

The above command can also use multiple permissions at the same time Grant and recycle, use commas to separate permissions

mysql>grant select,update,delete  ,insert  on dmc_db.*  to  zx_root;

If you want to see the results immediately, use the

flush  privileges ;

command to update

You must give the following information when setting permissions

1, Permissions to be granted

2, Database or table to which access permissions are granted

3, User name

grant and revoke can be used in To control access permissions at one level

1, for the entire server, use grant ALL and revoke ALL

2, for the entire database, use on database.*

3, for the feature table, Use on database.table

4, specific column

5, specific stored procedure

The meaning of the value of the host column in the user table

% Match all hosts

localhost localhost will not be parsed into an IP address and will be connected directly through UNIXsocket

127.0.0.1 will be connected through the TCP/IP protocol and can only be accessed on this machine

::1 ::1 is compatible with ipv6, indicating the same as 127.0.0.1 of ipv4

grant ordinary data users have the right to query, insert, update, and delete all table data in the database.

grant select on testdb.* to common_user@'%'
grant insert on testdb.* to common_user@'%'
grant update on testdb.* to common_user@'%'
grant delete on testdb.* to common_user@'%'

Or, use a MySQL command instead:

grant select, insert, update, delete on testdb.* to common_user@'%'

9>.grant Database developer, create tables, indexes, views, stored procedures, and functions. . . and other permissions.

grant Permission to create, modify, and delete MySQL data table structures.

grant create on testdb.* to developer@'192.168.0.%';
grant alter on testdb.* to developer@'192.168.0.%';
grant drop on testdb.* to developer@'192.168.0.%';

grant permission to operate MySQL foreign keys.

grant references on testdb.* to developer@'192.168.0.%';

grant permission to operate MySQL temporary tables.

grant create temporary tables on testdb.* to developer@'192.168.0.%';

grant permission to operate MySQL indexes.

grant index on testdb.* to developer@'192.168.0.%';

grant permission to operate MySQL views and view view source code.

grant create view on testdb.* to developer@'192.168.0.%';
grant show view on testdb.* to developer@'192.168.0.%';

grant permission to operate MySQL stored procedures and functions.

grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status
grant alter routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure
grant execute on testdb.* to developer@'192.168.0.%';

10>.grant Ordinary DBA authority to manage a MySQL database.

grant all privileges on testdb to dba@'localhost'

Among them, the keyword "privileges" can be omitted.

11>.grant Senior DBA permission to manage all databases in MySQL.

grant all on *.* to dba@'localhost'

12>.MySQL grant permissions can be applied at multiple levels.

1. Grant applies to the entire MySQL server:

grant select on *.* to dba@localhost; -- dba 可以查询 MySQL 中所有数据库中的表。
grant all on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有数据库

2. Grant applies to a single database:

grant select on testdb.* to dba@localhost; -- dba 可以查询 testdb 中的表。

3. Grant applies to a single data table:

grant select, insert, update, delete on testdb.orders to dba@localhost;

4. Grant acts on the columns in the table:

grant select(id, se, rank) on testdb.apache_log to dba@localhost;

5. Grant acts on stored procedures and functions:

grant execute on procedure testdb.pr_add to 'dba'@'localhost'
grant execute on function testdb.fn_add to 'dba'@'localhost'

Note: After modifying the permissions, you must Refresh the service, or restart the service. To refresh the service, use: FLUSH PRIVILEGES.

Related recommendations:

Related knowledge of MySQL query time

The relationship between PHP and MySQL

The relationship between php, apache and mysql


The above is the detailed content of User management and permissions and settings - mysql. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn