用户管理
mysql用户管理即用户的增删改查操作。
1、创建用户
insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));
这样就创建了一个名为:test 密码为:1234 的用户。此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。
2、删除用户
Delete FROM user Where User='test' and Host='localhost';
flush privileges;
drop database testDB; //删除用户的数据库
删除账户及权限:>drop user 用户名@'%';
>drop user 用户名@ localhost;
3、修改用户密码
第一种:update mysql.user set password=password('新密码') where User="test" and Host="localhost";
第二种:mysqladmin -u -username -p password "new_password"
忘记密码:如果root用户密码丢失了,会给用户造成很大的麻烦。但是,可以通过某种特殊方法登录到root用户下,然后修改密码。
a、使用--skip-grant-tables选项启动MySQL服务
该选项将使MySQL服务器停止权限判断,任何用户都能够访问数据库。
在Windows操作系统下,使用mysqlid或mysqlid-nt来启动MySQL服务。
mysqld命令:
mysqld --skip-grant-tables
mysqld-nt命令:
mysqld-nt --skip-grant-tables
net start mysql命令:
net start mysql --skip-grant-tables
b、登录root用户,并且设置新密码
mysql -u root
必须使用UPDATE语句更新mysql数据库下的user表,而不能使用SET语句,因为--skip-grant-tables不能使用SET语句。
修改完密码以后,FLUSH PRIVILEGES语句加载权限表,新密码即生效。
4、查看用户
use mysql;
select * from user;
二、用户授权
授权命令常用格式如下:
命令 作用
GRANT 权限 ON 数据库.表单名称 TO 用户名@主机名 对某个特定数据库中的特定表单给予授权。
GRANT 权限 ON 数据库.* TO 用户名@主机名 对某个特定数据库中的所有表单给予授权。
GRANT 权限 ON *.* TO 用户名@主机名 对所有数据库及所有表单给予授权。
GRANT 权限1,权限2 ON 数据库.* TO 用户名@主机名 对某个数据库中的所有表单给予多个授权。
GRANT ALL PRIVILEGES ON *.* TO 用户名@主机名 对所有数据库及所有表单给予全部授权,(谨慎操作)。
1、查看权限:show grants for '用户'@'IP地址'
2、授权grant 权限 on 数据库.表 to '用户'@'IP地址'
3、取消授权revoke 权限 on 数据库.表 from '用户名'@'IP地址'
授权实例如下:grant all privileges on db1.tb1 TO '用户名'@'IP'
grant select on db1.* TO '用户名'@'IP'
grant select,insert on *.* TO '用户名'@'IP'
grant select,insert on *.* TO '用户名'@'%'
revoke select on db1.tb1 from '用户名'@'IP'
例子:
授权root用户拥有所有数据库的所有权限(某个数据库的所有权限):
mysql>grant all privileges on *.* to root@localhost identified by '123456';
mysql>flush privileges;//刷新系统权限表
三、用户权限
MySQL权限如下表
权限名字 权限说明 Context
CREATE 允许创建新的数据库和表 Databases, tables, or indexes
DROP 允许删除现有数据库、表和视图 Databases, tables, or views
GRANT OPTION 能够把自己获得的权限转赠给其他用户一个副本 Databases, tables, or stored routines
LOCK TABLES 允许使用显式锁表的语句锁表,前提是你必须有SELECT权限 Databases
REFERENCES MySQL 5.7.6之前引用特权是未使用的。5.7.6,创建一个外键约束需要引用父表的特权。 Databases or tables
EVENT The EVENT privilege is required to create, alter, drop, or see events for the Event Scheduler. Databases
ALTER 允许修改权限或重命名表 Tables
DELETE 允许从表中或数据库中删除行 Tables
INDEX 允许创建或删除索引 Tables
INSERT 允许在表和数据库中插入行 Tables or columns
SELECT 允许在表和数据库这查询行 Tables or columns
UPDATE 允许在表和数据空中更新行 Tables or columns
CREATE TEMPORARY TABLES 允许创建和使用临时表 Tables
TRIGGER 允许使用触发器相关,前提是你必须拥有这个表的CREATE、DROP、EXECUTE或者Display权限 Tables
CREATE VIEW 允许使用CREATE VIEW语句 Views
SHOW VIEW 允许使用SHOW VIEW语句 Views
ALTER ROUTINE ALTER ROUTINE允许你修改存储过程(过程或函数)前提是你需要在存储过程上拥有ALTER或DROP权限 Stored routines
CREATE ROUTINE ALTER ROUTINE允许你创建存储过程(过程或函数)前提是你需要在存储过程上拥有ALTER或DROP权限 Stored routines
EXECUTE 允许你执行存储过程(过程或函数) Stored routines
FILE 文件读写权限允许你文件在服务器主机上使用LOAD DATA INFILE and SELECT 语句以及LOAD DATA()函数 File access on server host
CREATE TABLESPACE 允许创建表空间,前提是你需要CREATE、ALTER OR DROP tablespaces 以及属于log file 组 Server administration
CREATE USER 允许使用ALTER USER, CREATE USER, DROP USER, RENAME USER, and REVOKE ALL PRIVILEGES 语句 Server administration
PROCESS 允许使用SHOW PROCESSLIST or mysqladmin processlist看到线程属于其他账户,你总能看到自己的线程。PROCESS权限还允许使用SHOW ENGINE语句 Server administration
PROXY Server administration
RELOAD 允许使用FLUSH语句,以及mysqladmin命令中对于FLUSH的操作例如:flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, and reload. Server administration
REPLICATION CLIENT 是否有权限去请求复制相关主数据库产生的事件的,允许显示的使用SHOW MASTER STATUS, SHOW SLAVE STATUS, and SHOW BINARY LOGS语句 Server administration
REPLICATION SLAVE 是否能够创建连接以复制的方式,连接至数据库服务器端 Server administration
SHOW DATABASES 允许使用SHOW DATABASES来查看所有数据库列表,如果没有这个权限则只能查看规定数据库 Server administration
SHUTDOWN 允许使用SHUTDOWN语句,mysqladmin shutdown命令,以及mysql_shutdown()API函数 Server administration
SUPER 超级特权可以用于终止其他会话或改变服务器运行。属于特别高级别的一类权限 Server administration
USAGE 无权限,当您想要创建一个没有权限的用户时,可以指定USAGE Server administration
ALL PRIVILEGES 所有权限: ALL PRIVILEGES,可以简写为ALL Server administration
————————————————
本文为CSDN博主「菲宇」的原创文章
原文链接:https://blog.csdn.net/bbwangj/article/details/76258425