关闭mysql权限管理_MySQL系列:用户及权限管理

一、权限介绍

1.权限类别:对象界别划分

库级别、表级别、字段级别、管理类权限、程序类权限

(1)库和表级别的权限:对于具体的库或者表进行授权操作

ALTER、CREATE、CREATE VIEW、DROP、INDEX、SHOW VIEW

GRANT OPTION:能够把自己获得的权限赠经其他用户一个副本;回收权限困难

(2)数据操作:增删查改

SELECT、INSERT、DELETE、UPDATE

(3)字段级别:授权可以对指定字段才有去权限

SELECT(col1,col2,...)、UPDATE(col1,col2,...)、INSERT(col1,col2,...)

(4)管理类:

CREATE TEMPORARY

TABLES创建临时表

CREATE USER创建用户

FILE从文件中导入导出

SUPER执行管理操作的权限

SHOW DATABASES查看其所有权限中所能查看的数据库

RELOAD重新装载授权表

SHUTDOWN进程级别关闭数据库权限

REPLICATION SLAVE复制相关

REPLICATION CLIENT复制相关

LOCK TABLES服务器级别对表锁操作

PROCESS根进程相关的

(5)程序类::是否有权限去运行存储过程或存储函数

FUNCTION函数、PROCEDURE存储过程、TRIGGER触发器

配合CREATE, ALTER, DROP, EXCUTE

(6)所有有限

ALL PRIVILEGES,,可简写为ALL

2.用户权限保存

设定的相关用户权限信息将保存在元数据数据库(自带的数据字典表):mysql库中的授权表

db数据库相关权限

host通过什么主机连接直当前mysql

user可登录用户

columns_priv字段相关权限

tables_priv表相关权限

procs_priv程序相关权限

proxies_priv代理相关权限

二、用户账户创建和授权

1.授权相关

(1)授权:GRANT

GRANT

priv_type[,...] ON [{table|function|procedure}] db.{table|routine} TO

'USERNAME'@'HOST' [IDENTIFIED BY 'password']

[REQUIRE

SSL] [WITH with_option]

权限在对象db.存储历程存储函数TO'USERNAME'@'HOST' [IDENTIFIED BY 'password']ssl指明限制

with_option:

GRANT OPTION

| MAX_QUERIES_PER_HOUR#每小时资源查询次数

| MAX_UPDATES_PER_HOUR#每小时资源更新次数

| MAX_CONNECTIONS_PER_HOUR#每小时创建的连接数

| MAX_USER_CONNECTIONS#同一个用户账号同时连接次数

(2)取消授权:REVOKE

REVOKE

priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type]

priv_level FROM user [, user] ...

(3)查看用户获得的授权:SHOW

GRANTS FOR

SHOW

GRANTS FOR 'USERNAME'@'HOST'

一般新创建的用户只有usage权限,即用户有权限通过远程连接创建连接线程连入mysql

2.用户相关

(1)创建用户:CREATE USER

CREATE USER 'USERNAME'@'HOST' [IDENTIFIED BY

'password'];可设置密码,也可以省略

(2)用户重命名:RENAME USER

RENAME

USERold_user_name TOnew_user_name

(3)删除用户

DROP

USER 'USERNAME'@'HOST'

注意:mysql的反解功能会解析IP到主机名,因为给ip授权而没有给主机名没有给授权时,会报错。

(4)修改密码

1) SET

PASSWORD FOR

2) UPDATE

mysql.user SET password=PASSWORD('your_password') WHERE clause;

更新表PASSWORD函数加密密码,

clause格式;

user='root' [and host='']

注意:只有刷新授权表,才能立即生效(FIUSH PRIVILEGES)

3) mysqladmin

password[new-password]

mysqladmin的子命令:mysqladmin [OPTIONS] command command....

3.忘记管理员密码的解决办法:(离线)

(1) 启动mysqld进程时,为其使用:--skip-grant-tables

--skip-networking装载时:跳过授权表,禁止远程登录

(2)

使用UPDATE命令修改管理员密码

(3)

关闭mysqld进程,移除上述两个选项,重启mysqld;

你可能感兴趣的:(关闭mysql权限管理)