Home >Database >Mysql Tutorial >Mysql8 creates, deletes users and authorizes and cancels rights operations.
mysql -uroot -p
select host,user from mysql.user;
Do not operate the yellow arrow, it is the MySQL system Comes with it; and the red arrow indicates the main administrator. The blue arrow is a sub-user. This is what I matched before. Now delete it and let’s start again.
drop user '用户名'@'主机名'; drop user 'wyy'@'192.168.0.105';
create user '用户名'@'允许那个主机链接' identified by '密码'; create user 'wyy'@'192.168.0.105' identified by 'wyy18222'; 只允许192.168.0.105的主机链接
Remarks:
Mysql8.0 uses caching-sha2-password encryption by default. Old clients may not support it and can be changed to mysql_native_password;
create user 'test'@'%' identified with mysql_native_password BY '密码';
Percent sign %; means that any IP address can be used Link
create user ‘wyy’@‘192.168.0.105’ identified by ‘wyy18222’;This is a link that can only be 192.168.0.105.
Alter user '用户名'@'主机名' identified by '新密码'; alter user 'wyy'@'192.168.0.105' identified by '123';
Authorize all permissions to the user
grant all privileges on *.* to '用户名'@'主机名' with grant option; grant all privileges on *.* to 'wyy'@'192.168.0.105' with grant option;
grant: Authorize, grant
privileges :Permissions, privileges
The first asterisk: indicates all databases
The second asterisk: indicates all tables
The "with grant option" indicates that the user can grant permissions to other users, but not beyond the permissions granted to themselves.. It’s okay not to add this.
For example: If wyy only has select and update permissions, but no insert and delete permissions, when authorizing another user, it can only grant it select and update permissions, but not insert and delete permissions.
Authorize individual permissions to users
all privileges can be replaced by select, update, insert, delete, drop, create and other operations
grant select,insert,update,delete on *.* to '用户名'@'主机名';
Authorize specified permissions to users
Grant the specified database permissions to the user
grant all privileges on 数据库 . * to 'wyy'@'192.168.0.105'; grant all privileges on xrs . * to 'wyy'@'192.168.0.105'; 将数据库名为xrs的所有权限赋予wyy
Grant the specified table permissions to the user
grant all privileges on 数据库 . 指定表名 to 'wyy'@'192.168.0.105'; 将某个数据库下的某个表的权限赋予wyy
Note:
Some people on the Internet can create and empower directly:
grant all privileges * . * to ‘User to be created’@‘localhost’ identified by ‘custom password’;
I tried it in mysql8 but it didn’t work (below version 8 Haven’t tried it yet), you need to create a user first and then grant it, not at the same time
flush privileges;
After setting up a new user or changing the password You need to use flush privileges to refresh MySQL's system permissions related tables,
Otherwise, access denied will appear
Another method is to restart the mysql server to make the new settings take effect.
show grants for 'wyy'@'192.168.0.105';
revoke all privileges on *.* from 'wyy'@'192.168.0.105';
Whatever permissions the user has What permissions should be revoked?
Creating users:
create user userName@localhost identified with mysql_native_password by 'password' ;(with mysql_native_password Without this, Navicat will not be able to log in prompt: 2059 - authentication plugin... error, because Navicat does not support the default encryption method of the latest database);
Authorized user:
GRANT ALL PRIVILEGES ON databaseName.* TO userName@'ip';(注意这点跟以往数据库都不一样,无需后面跟着IDENTIFIED BY 'password';否则将提示ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'password'' at line 5)
The above is the detailed content of Mysql8 creates, deletes users and authorizes and cancels rights operations.. For more information, please follow other related articles on the PHP Chinese website!