本文共 2698 字,大约阅读时间需要 8 分钟。
MySQL用户和权限管理
权限类别: 库级别 表级别 字段级别 管理类 程序类 管理类: CREATE TEMPORARY TABLES #创建临时表,临时表大概有16M空间 CREATE USER #创建用户 FILE #创建文件 SUPER #高级别管理操作,例如:复制,权限授权等高级权限 SHOW DATABASES #一般而言授权给所有用户 RELOAD #重新装载授权表的 SHUTDOWN #是否拥有进程级别关闭的权限 REPLICATION SLAVE #复制的方式连接至服务器端 REPLICATION CLIENT #是否有权限去请求复制主数据库产生的数据的 LOCK TABLES #锁表权限 PROCESS #进程权限,列出进程列表。 程序类: FUNCTION # PROCEDURE TRIGGER #触发器 CREATE, ALTER, DROP, EXCUTE(执行) 库和表级别:TABLE or DATABASE ALTER #修改 CREATE CREATE VIEW DROP INDEX SHOW VIEW GRANT OPTION:能够把自己获得的权限赠经其他用户一个副本; 数据操作: SELECT INSERT DELETE UPDATE 字段级别: DELETE没有字段级别的权限 SELECT(col1,col2,...) UPDATE(col1,col2,...) INSERT(col1,col2,...) 所有有限:ALL PRIVILEGES, ALL 元数据数据库:mysql 该表中保存了相关的用户和授权 授权表: db, host, user columns_priv, tables_priv, procs_priv, proxies_priv用户账号: 'USERNAME'@'HOST': @'HOST': 主机名; IP地址或Network; 通配符: %, _: 172.16.%.% 创建用户:CREATE USER CREATE USER 'USERNAME'@'HOST' [IDENTIFIED BY 'password']; 查看用户获得的授权:SHOW GRANTS FOR SHOW GRANTS FOR 'USERNAME'@'HOST' 用户重命名:RENAME USER RENAME USER old_user_name TO new_user_name 删除用户:DROP USER 'USERNAME'@'HOST' mysql刷新权限命令:FLUSH PRIVILEGES; 修改密码: (1) SET PASSWORD FOR (2) UPDATE mysql.user SET password=PASSWORD('your_password') WHERE clause; (3) mysqladmin password mysqladmin [OPTIONS] command command.... -u, -h, -p 忘记管理员密码的解决办法: (1) 启动mysqld进程时,为其使用:--skip-grant-tables --skip-networking (2) 使用UPDATE命令修改管理员密码 (3) 关闭mysqld进程,移除上述两个选项,重启mysqld; 授权:GRANT GRANT priv_type[,...] ON [{table|function|procedure}] db.{table|routine} TO 'USERNAME'@'HOST' [IDENTIFIED BY 'password'] [REQUIRE SSL] [WITH with_option] with_option: GRANT OPTION | MAX_QUERIES_PER_HOUR count | MAX_UPDATES_PER_HOUR count | MAX_CONNECTIONS_PER_HOUR count | MAX_USER_CONNECTIONS count取消授权:REVOKE REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] priv_level FROM user [, user] ...
转载于:https://blog.51cto.com/zhanx/2350259