上面的解析已经很详细了,但是还有中情况,一个用户对应多个数据库的情况:
grant all on `数据库名%`.* to '用户名'@'IP' identified by '密码'
mysql支持通配符
当把带引号的值是,需使用反勾号(‘`’)为数据库、表、列和子程序名称加引号。使用单引号(‘'’)为hostnames、usernames和
密码加引号 .在数据库名一项可以使用%来选择一类数据库,还可以使用“_”
MySQL用户帐号管理主要用grant(授权)和revoke(撤权)两个SQL指令来管理。这两个指令实质是通过操作user(连接权限和全局
权限)、db(数据库级权限)、tables_priv(数据表级权限)、columns_priv(数据列级权限)四个权限表来分配权限的。host权
限表不受这两个指令影响。下面将会详细介绍用户权限管理的内容。
本文由网页教学网(http://www.webjx.com
)整理发布!转载请注明出处,谢谢!
-
GRANT语法说明:
GRANT privileges (columns) #privileges表示授予的权限,columns表示作用的列(可选)
ON what #设置权限级别,全局级、数据库级、数据表级和数据列级
TO account #权限授予的用户,用"user_name"@"host_name"这种用户名、主机名格式
IDENTIFIED BY 'password' #设置用户帐号密码
REQUIRE encryption requirements #设置经由SSL连接帐号
WITH grant or resource management options; #设置帐号的管理和资源(连接服务器次数或查询次数等)选项
示例:
mysql>grant all on db.* to 'test'@'localhost' identified by 'test';
上例运行后的效果是,test用户只能通过‘test’密码从本机访问db数据库
mysql>grant all on db.* to 'test'@'%' identified by 'test';
上例运行后的效果是,test用户可通过‘test’密码从任意计算机上访问db数据库。‘%’代表任意字符,‘_’代表一个任意字符。主机名部份还可以是IP地址。
|
如果没有给定主机部份,则默认为任意主机,也就是'test'和'test'@'%'是等价的。 |
-
Table 4.1. 访问权限表
权限
权限说明
CREATE TEMPORARY TABLES |
创建临时数据表 |
EXECUTE |
执行存储过程(暂不支持) |
FILE |
操作系统文件 |
GRANT OPTION |
可把本帐号的权限授予其它用户 |
LOCK TABLES |
锁定指定数据表 |
PROCESS |
查看运行着的线程信息 |
RELOAD |
重新加载权限表或刷新日志及缓冲区 |
REPLICATION CLIENT |
可查询主/从服务器主机名 |
REPLICATION SLAVE |
运行一个镜像从服务器 |
SHOW DATABASES |
可运行SHOW DATABASES指令 |
SHUTDOWN |
关闭数据库服务器 |
SUPER |
可用kill终止线程以及进行超级用户操作 |
|
|
ALTER |
可修改表和索引的结构 |
CREATE |
创建数据库和数据表 |
DELETE |
删除数据表中的数据行 |
DROP |
删除数据表和数据行 |
INDEX |
建立或删除索引 |
INSERT |
插入数据行 |
REFERENCES |
(暂时不支持) |
SELECT |
查询数据行 |
UPDATE |
更新数据行 |
|
|
ALL |
所有权限,但不包括GRANT。 |
USAGE |
无权限权限 |
-
Table 4.2. 权限作用范围(由ON子句设置)
权限限定符
作用范围
ON *.* |
全局级权限,作用于所有数据库 |
ON * |
全局级权限,若未指定默认数据库,其作用范围是所有数据库,否则,其作用范围是当前数据库 |
ON db_name.* |
数据库级权限,作用于指定数据库里的所有数据表 |
ON db_name.tbl_name |
数据表级权限,作用于数据表里的所有数据列 |
ON tbl_name |
数据表级权限,作用于默认数据库中指定的数据表里的所有数据列 |
-
USAGE权限的用法:修改与权限无关的帐户项,如:
mysql>GRANT USAGE ON *.* TO account IDENTIFIED BY 'new_password'; #修改密码
mysql>GRANT USAGE ON *.* TO account REQUIRE SSL; #启用SSL连接
mysql>GRANT USAGE ON *.* TO account WITH MAX_CONNECTIONS_PER_HOUR 10; #设置资源
-
拥有WITH GRANT OPTION权限的用户可把自已所拥用的权限转授给其他用户,如:
mysql>GRANT ALL ON db.* TO 'test'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
这样test用户就有权把该权限授予其他用户。
-
限制资源使用,如:
mysql>GRANT ALL ON db.* TO account IDENTIFIED BY 'password' WITH MAX_CONNECTIONS_PER_HOUR 10 MAX_QUERIES_PER_HOUR 200 MAX_UPDATES_PER_HOUR 50;
允许account用户每小时最多连接20次服务器,每小时最多发出200条查询命令(其中更新命令最多为50条)
默认都是零值,即没有限制。FLUSH USER_RESOURCES和FLUSH PRIVILEGES可对资源限制计数器清零。
-
REVOKE语法说明:
mysql>REVOKE privileges (columns) ON what FROM account;
示例:
mysql>REVOKE SELECT ON db.* FROM 'test'@'localhost';
删除test帐号从本机查询db数据库的权限
REVOKE可删除权限,但不能删除帐号,即使帐号已没有任何权限。所以user数据表里还会有该帐号的记录,要彻底删除帐号,需用DELETE命令删除user数据表的记录,如:
% mysql -u root -p
mysql>use mysql
mysql>DELETE FROM user where User='test' and Host='localhost';
mysql fulsh privileges;
REVOKE不能删除REQUIRE和资源占用的配置。他们是要用GRANT来删除的,如:
GRANT USAGE ON *.* TO account REQUIRE NONE; #删除account帐号的SSL连接选项
GRANT USAGE ON *.* TO account WITH MAX_CONNECTIONS_PER_HOUR 0 MAX_QUERIES_PER_HOUR 0 M
分享到:
相关推荐
MySQL管理员应该知道怎样通过指定哪些用户可连接到服务器、从哪里进行连接,以及在连接时做什么,来设置MySQL用户账号。MySQL3.22.11引入了两个更容易进行这项工作的语句:GRANT 语句创建MySQL用户并指定其权限,...
数据库管理和维护;;用户要访问MySQL数据库,首先必须拥有登录到MySQL服务器的用户名和口令。登录到服务器后,MySQL允许用户在其权限内使用数据库资源。MySQL的安全系统很灵活,它允许以多种不同的方式创建用户和设置...
MySql示例1:创建账户表及测试数据.zip,MySql示例1:创建账户表及测试数据.zip,MySql示例1:创建账户表及测试数据.zip MySql示例1:创建账户表及测试数据.zip
用户权限:和MySQL所有的数据库相关。 ;给某用户授予权限可以使用GRANT语句。使用SHOW GRANTS语句可以查看当前账户拥有什么权限。 GRANT语法格式: GRANT 权限1[(列名列表1)] [,权限2 [(列名列表2)]] ... ON [目标] ...
该有的都有 不会的看...后台主要功能有:用户管理、商品管理、订单管理、用户余额管理、管理员密码修改等。 前台测试账号:13812345678,密码:123456 前台测试账号2:17853593223,密码:123456 或自己注册一个账号
框架: Springmvc+jsp+hibernate+Mysql 功能: 一个客栈管理系统 会员 预订/取消预订 会员卡支付 修改卡信息 - 查看本人统计信息 预订/入住/消费等 会员卡办理 注册 每位会员持有一张会员卡(7位识别码,...
基于jsp+mysql+Spring+mybatis的SSM健身房管理系统 运行环境: jdk 1.8 IDE环境: Eclipse,Myeclipse,IDEA都可以 tomcat环境: Tomcat 7.x,8.x,9.x版本均可,理论上Tomcat版本不是太老都可以。 硬件环境: windows 7/...
bms和mysql文件夹里面全部都是MySQL数据库文件不要随意改名 将bms和mysql整个文件夹和ibdata1复制粘贴到xampp安装路径下的mysql文件夹里的data文件夹里面, 如我的路径即是D:\xampp\mysql\data\bms,接着打开XMAPP...
MySQL管理员应该知道怎样通过指定哪些用户可连接到服务器、从哪里进行连接,以及在连接时做什么,来设置MySQL用户账号。MySQL3.22.11引入了两个更容易进行这项工作的语句:GRANT 语句创建MySQL用户并指定其权限,...
book文件夹里有个数据库文件(book_mysql.sql),使用图书管理系统前,把数据库文件导入数据库即可。 连接数据库的账号是root,密码是空。 现有账号: 系统管理员账号 super 密码是 super 普通用户账号 ceit 密码是 ...
(1)用户管理: 用户注册:新用户注册 用户登录:新用户登录 找回密码:忘记密码找回密码 用户评论:发表对新闻的评论 (2)管理员管理: 系统账号管理:管理员管理系统现有账号,进行删除停用等操作 系统...
5.2.2. 连接到MySQL实例管理器并创建用户账户 5.2.3. MySQL实例管理器命令行选项 5.2.4. MySQL实例管理器配置文件 5.2.5. MySQL实例管理器识别的命令 5.3. mysqld:MySQL服务器 5.3.1. mysqld命令行选项 5.3.2. SQL...
(1)用户管理: 用户注册:新用户注册 用户登录:新用户登录 找回密码:忘记密码找回密码 用户评论:发表对新闻的评论 (2)管理员管理: 系统账号管理:管理员管理系统现有账号,进行删除停用等操作 系统...
MySQL 账号 权限, 用户管理 mysql>use mysql; 查看 mysql> select host,user,password from user ; 创建
5.2.2. 连接到MySQL实例管理器并创建用户账户 5.2.3. MySQL实例管理器命令行选项 5.2.4. MySQL实例管理器配置文件 5.2.5. MySQL实例管理器识别的命令 5.3. mysqld:MySQL服务器 5.3.1. mysqld命令行选项 5.3.2. SQL...
个人信息管理,课程管理,成绩管理,学生信息管理,教师管理,所有账号管理等。 教师: 个人信息管理,课程管理,成绩管理,学生信息管理等。 学生: 个人信息管理,查看自己的成绩等。
如果是 system 用户在运行 MySQL ,这个是非常危险的,一旦Mysql 出现漏洞,或被其他模式提权,直接就是 system 权限。对 MySQL进行降权,用普通权限运行假设(1)mysql安装在 d:\mysql 目录(2)运行时用户名为 ...
mysql安装配置教程 以下是MySQL的安装和配置教程: 下载MySQL。访问MySQL官方网站,选择与您的操作系统相匹配的版本进行下载,例如,对于Windows用户,可以选择MySQL Installer;对于Linux或其他操作系统,则...
本项目是一套基于Java swing和mysql实现的银行管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。...
(1)用户管理: 用户注册:新用户注册 用户登录:新用户登录 找回密码:忘记密码找回密码 用户评论:发表对新闻的评论 (2)管理员管理: 系统管理: 系统账号管理:管理员管理系统现有账号,进行删除停用等...