本文共 2538 字,大约阅读时间需要 8 分钟。
文章来源于:
一、创建用户并分配权限:
SQL语句: ------------------------------------------------------------------------- GRANT privileges [(columns)] ON item TO 'user_name'@'host_name' [IDENTIFIED BY 'password'] [REQUIRE ssl_options] [WITH [GRANT OPTION | limit_option]] ------------------------------------------------------------------------- 1) privileges子句 分成三种类型的访问权限: 管理权限(如: SHUTDOWN, FILE, RELOAD等) 数据库等的操作权限(如: SELECT, UPDATE, INSERT,DELETE等) 特殊权限: ALL代表除GRANT外的所有权限,USAGE代表无权限 2) columns 指定数据列的访问权限( 如: SELECT( newsId, title) ) 3) item 指定有关权限的作用范围: *--当未指定数据库时:所有数据库的所有表。指定数据库当前数据库所有表, *.*--所有数据库中的所有表 dbName.*--指定数据库的所有表 dbName.tbName--指定数据库指定表 tbName默认数据库的指定表 4) user_name新用户的用户名 5) host_name主机名--'%'表示所有的主机( 'user_name'@'%' = 'user_name')。在host_name 中可以有通配符*如: 202.115.6.* 6) IDENTIFIED BY 'password'用户密码设置。不提供该子句的出现的两种情况:创建新用户时--密码为空, 修改用户时--密码不变 7) REQUIRE ssl_option 是否要用加密连接mysql(只有unix mysql支持,一般不用该子句) 8) WITH GRANT OPTION 创建的用户是否能够把自己的权限分配给别的用户 8.1) WITH MAX_CONNECTION_PER_HOUR n MAX_QUERIES_PER_HOUR n MAX_UPDATES_PER_HOUR N;用来设置该用户最大的连接数,每小时查询次数,每小时修改次数。默认情况下无限制。 ----------------------------------------------------------------------------------------------------------- 二:收回权限和删除用户 SQL语句: REVOKE privileges (columns) ON item FROM account account必须与授予权限时一致,而privileges不用一致。 例子:收回用户的所有权限并删除用户 一种方法: 删除出授权权限外的所有权限 mysql> REVOKE ALL ON *.* FROM userName; 如有为用户添加授权权限则 mysql> REVOKE GRANT OPTION ON *.* FROM userName; 如果创建时要求用户必须使用SSL连接则必须: mysql> GRANT USAGE ON *.* TO userName REQUIRE NONE; 如果创建时要求用户必须设置连接数等: mysql> GRANT USAGE ON *.* TO userName WITH MAX_CONNECTION_PER_HOUR 0 MAX_QUERIES_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0; 上面只是收回了权限,下面是删除用户 mysql> use mysql; mysql> DELETE FROM user WHERE User= 'userName' and Host = 'hostName'; mysql> FLUSH PRIVILEGES;(重新载入授权表) 更简单的一种方法: mysql> delete from user where User = 'userName' and Host = 'hostName'; mysql> delete from db where User = 'userName' and Host = 'hostName'; mysql> delete from columns_pri where User = 'userName' and Host = 'hostName'; mysql> delete from tables_pri where User = 'userName' and Host = 'hostName'; mysql> flush privileges; -------------------------------------------------------------------------------------------------------- 三: (扩展)修改口令&设置丢失的口令 方法一: mysql> GRANT USAGE ON *.* TO 'userName'@'hostName' IDENTIFIED BY 'newPassword'; 方法二: mysql> set password for 'userName'@'hostName' = PASSWORD('newPassword') 方法三 : mysql> use mysql; mysql> update User set password = PASSWORD('newPassword') where User = 'userName' AND Host = 'hostName'; mysql> FLUSH PRIVILEGES;转载地址:http://tilmd.baihongyu.com/