- 浏览: 716581 次
- 性别:
- 来自: 嘉兴
文章分类
- 全部博客 (386)
- Struts1.1 (2)
- Database (18)
- Core Java (15)
- Log4j (4)
- SSH (0)
- Dao (1)
- Architecture Design (1)
- References (2)
- Eclipse&MyEclipse (10)
- Hibernate (7)
- Spring (8)
- JavaMail (1)
- Data Structure And Algorithm (48)
- Struts 2 (2)
- SSI (1)
- SSL (2)
- JSTL (1)
- EJB3 (2)
- NET (2)
- XML (2)
- Components (2)
- Ant (3)
- Multi Thread (1)
- Performance Monitoring (1)
- Web Server (17)
- Oracle (1)
- jQuery (8)
- Regular Expression (1)
- Weblogic (1)
- Exception (1)
- Security (2)
- File Manipulation (1)
- JavaScript (12)
- JVM (2)
- HTML&DIV&CSS (4)
- Android (10)
- Beyond GFW (0)
- Business (0)
- SVN (6)
- 虚拟主机 (1)
- Virtual Host (3)
- My mentality (5)
- OS (15)
- ISPMP (3)
- Magento (5)
- Jsoup&HttpClient (7)
- LINUX (9)
- Database Design (0)
- Power Designer (1)
- TaobaoOpenPlatform (2)
- C/C++ (3)
- Maven (11)
- Quartz (1)
- Load Balance (1)
- Zabbix (4)
- Product&Business (1)
- Pay Interface (1)
- Tomcat (2)
- Redis (1)
- 集群 (1)
- Session (1)
- 共享Session (1)
- Jedis (1)
- jenkins (1)
- 持续集成 (1)
- Web前端 (1)
最新评论
-
aqq331325797:
特意注册账号上来说一句。牛逼!
swagger2.2.2 与 spring cloud feign冲突 -
KitGavinx:
跨顶级域名怎么保持sessionid一致?
Tomcat7集群共享Session 基于redis进行统一管理 -
jaychang:
dujianqiao 写道HI ,能否给一个完整的demo 啊 ...
淘宝订单同步方案 - 丢单终结者 -
GGGGeek:
找了一会儿,感觉mybatis应该没有这种操作,直到发现博主的 ...
mybatis collection list string -
dujianqiao:
HI ,能否给一个完整的demo 啊 ?
淘宝订单同步方案 - 丢单终结者
摘要:本文介绍了如何建立用户,如何为用户分配权限。GRANT语句虽然能够为用户分配权限,使用比较方便,但是从安全角度,从增加对系统了解角度,你应该尽量使用直接修改授权表的方法。这样可以更精确的控制授权,能够对授权表完全了解,避免因为 GRANT语句的错误,是MySQL服务器的安全性降低。 你可以有2个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表。比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些。 使用SHOW GRANTS语句显示用户的授权 你可以直接查看授权表,也可以使用SHOW GRANTS语句查看某个用户的授权,这种情况下使用SHOW GRANTS语句显然要方便一些。 语法:SHOW GRANTS FOR user_name 为了容纳对任意主机的用户授予的权利,MySQL支持以格式指定user_name值。 例如,下面的语句显示一个用户admin的权限: mysql>SHOW GRANTS FOR ; 其结果为创建该用户的GRNAT授权语句: GRANT RELOAD, SHUTDOWN, PROCESS ON *.* TO IDENTIFIED BY PASSWORD '28e89ebc62d6e19a' 密码是加密后的形式。 使用GRANT语句创建用户并授权 GRANT语句的语法 GRANT priv_type (columns) ·priv_type 分配给用户的权限。 priv_type可以指定下列的任何一个: ALL PRIVILEGES FILE RELOAD ALTER INDEX SELECT CREATE INSERT SHUTDOWN DELETE PROCESS UPDATE DROP REFERENCES USAGE ALL是ALL PRIVILEGES的一个同义词,REFERENCES还没被实现,USAGE当前是“没有权限”的一个同义词。它能用在你想要创建一个没有权限用户的时候。 对于表,你能指定的唯一priv_type值是SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、GRANT、INDEX和ALTER。 对于列,你能指定的唯一priv_type值是(即,当你使用一个column_list子句时)是SELECT、INSERT和UPDATE。 ·columns 权限适用的列。 这是可选的,只来设置列专有的权限。如果命名多于一个列,则用逗号分开。 ·what 权限应用的级别 GRANT允许系统主管在4个权限级别上授权MySQL用户的权利: ·全局级别 全局权限作用于一个给定服务器上的所有数据库。这些权限存储在mysql.user表中。 你能通过使用ON *.*语法设置全局权限 ·数据库级别 数据库权限作用于一个给定数据库的所有表。这些权限存储在mysql.db和mysql.host表中。 你能通过使用ON db_name.*语法设置数据库权限。如果你指定ON *并且你有一个当前数据库,你将为该数据库设置权限。(警告:如果你指定ON *而你没有一个当前数据库,你将影响全局权限!) ·表级别 表权限作用于一个给定表的所有列。这些权限存储在mysql.tables_priv表中。你能透过 ON tbl_name,为具体的表名设置权限。 ·列级别 列权限作用于在一个给定表的单个列。这些权限存储在mysql.columns_priv表中。你可以通过指定一个columns子句将权限授予特定的列,同时要在ON子句中指定具体的表。 对与一个表或列的权限是由4个权限级别的逻辑或形成的。例如,如果mysql.user表指定一个用户有一个全局select权限,它不能被数据库、表或列的一个条目否认。 对于一个列的权限能如下计算: global privileges user 使用权限的用户。 为了容纳对任意主机的用户授予的权利,MySQL支持以格式指定user_name值。如果你想要指定一个特殊字符的一个user字符串(例如“-”),或一个包含特殊字符或通配符的host字符串(例如“%”),你可以用括号括起能用户或主机名字 (例如,)。 你能在主机名中指定通配符。例如,"适用于在loc.gov域中任何主机的user,并且"适用于在144.155.166类 C 子网中任何主机的user。 简单形式的user是"的一个同义词。注意:如果你允许匿名用户连接MySQL服务器(它是缺省的),你也应该增加所有本地用户如 ,因为否则,当用户试图从本地机器上登录到MySQL服务器时,对于mysql.user表中的本地主机的匿名用户条目将被使用!匿名用户通过插入有User=''的条目到mysql.user表中来定义。通过执行这个查询,你可以检验它是否作用于你: mysql> SELECT Host,User FROM mysql.user WHERE User=''; ·password 分配给该用户的口令。这也是可选的。 在MySQL 3.22.12或以后,如果创建一个新用户或如果你有全局授予权限,用户的口令将被设置为由IDENTIFIED BY子句指定的口令,如果给出一个。如果用户已经有了一个口令,它被一个新的代替。 警告:如果你创造一个新用户但是不指定一个IDENTIFIED BY子句,用户没有口令。这是不安全的。 ·WITH GRANT OPTION子句是可选的。 WITH GRANT OPTION子句给与用户有授予其他用户在指定的权限水平上的任何权限的能力。你应该谨慎对待你授予他grant权限的用户,因为具有不同权限的两个用户也许能合并权限! 创建用户并授权的实例 创建一个具有超级用户权利的用户: mysql>GRANT ALL ON *.* TO IDENTIFIED BY "passwd"->WITH GRANT OPTION 该语句将在user表中为创建一个记录,打开所有权限。 数据库级权限用一个ON db_name.*子句而不是ON *.*进行授权: mysql>GRANT ALL ON sample.* TO IDENTIFIED BY "ruby" 这些权限不是全局的,所以它们不存储在user表中,我们仍然需要在user表中创建一条记录(使得用户能连接),但我们也需要创建一个db表记录记录数据库集的权限。 直接修改授权表创建用户并授权 如果你还记得前面的介绍,你应该能即使不用GRANT语句也能做GRANT做的事情。记住在你直接修改授权表时,你将通知服务器重载授权表,否则他不知道你的改变。你可以执行一个mysqladmin flush-privileges或mysqladmin reload命令和FLUSH PRIVILEGES语句强迫一个重载。如果你忘记做这个,你会疑惑为什么服务器不做你想做的事情。 下列GRANT语句创建一个拥有所有权的超级用户。包括授权给别人的能力: GRANT ALL ON *.* TO IDENTIFIED BY "passwd" WITH GRANT OPTION 该语句将在user表中为创建一个记录,打开所有权限,因为这里是超级用户(全局)权限存储的地方,要用INSERT语句做同样的事情,语句是: INSERT INTO user VALUES("localhost","anyname",PASSWORD("passwd"), 你可能发现它不工作,这要看你的MySQL版本。授权表的结构已经改变而且你在你的user表可能没有14个权限列。用SHOW COLUMNS找出你的授权表包含的每个权限列,相应地调整你的INSERT语句。下列GRANT语句也创建一个拥有超级用户身份的用户,但是只有一个单个的权限: GRANT RELOAD ON *.* TO IDENTIFIED BY "flushpass" 本例的INSERT语句比前一个简单,它很容易列出列名并只指定一个权限列。所有其它列将设置为缺省的"N": INSERT INTO user (Host,Password,Reload) VALUES("localhost","flush",PASSWORD("flushpass"),"Y") 数据库级权限用一个ON db_name.*子句而不是ON *.*进行授权: GRANT ALL ON sample.* TO IDENTIFIED BY "ruby" 这些权限不是全局的,所以它们不存储在user表中,我们仍然需要在user表中创建一条记录(使得用户能连接),但我们也需要创建一个db表记录记录数据库集权限: mysql> INSERT INTO user (Host,User,Password) 要设置表级或列级权限,你对tables_priv或columns_priv使用INSERT语句。当然,如果你没有GRANT语句,你将没有这些表,因为它们在MySQL中同时出现。如果你确实有这些表并且为了某些原因想要手工操作它们,要知道你不能用单独的列启用权限。 你设置tables_priv.Table_priv或columns_priv.Column_priv列来设置包含你想启用的权限值。例如,要对一个表启用SELECT和INSERT权限,你要在相关的tables_priv的记录中设置Table_priv为"Select,Insert"。
ON what
TO user IDENTIFIED BY “password”
WITH GRANT OPTION
要使用该语句,需要填写以下部分:
OR (database privileges AND host privileges)
OR table privileges
OR column privileges
在大多数情况下,你只授予用户一个权限级别上的权限,因此现实通常不象上面所说的那样复杂。
"Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y")
-> VALUES("localhost","boris",PASSWORD("ruby")) ;
mysql> INSERT INTO db VALUES
-> ("localhost","sample_db","boris","Y","Y","Y","Y","Y","Y","N","Y","Y","Y");
"N"列是为GRANT权限;对末尾的一个数据库级具有WITH GRANT OPTION的GRANT语句,你要设置该列为"Y"。
发表评论
-
存储过程
2017-09-30 15:20 383CREATE TABLE test.products ... -
数据库事务隔离级别-幻读与不可重复读的区别
2016-12-19 09:59 2069不可重复读 不可重复读的重点是修改: 同样的条件, 你 ... -
Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
2015-06-07 14:02 710转载自:http://www.ha97.com/5359. ... -
在Linux系统环境下修改MySQL的root密码
2015-03-30 22:19 749第一种方法:root用户登录系统/usr/local/mys ... -
Windows下免安装MySQL开机启动
2015-03-27 08:47 951如发现系统启动后MySQL未开机启动服务,那么可以修改下注册 ... -
MySQL免安装版本安装配置
2015-01-29 15:13 633这两天试用了一下MySQL5. ... -
20个数据库设计的最佳实践
2015-01-29 14:51 7351、使用定义明确的表或列名,并保持一致(例如,School、 ... -
RBAC权限设计
2014-04-25 16:06 1724RBAC 模型作为目前最为广泛受的权限模型 ... -
mysql中表名为关键字的处理方法
2014-04-08 11:18 954这是一条简单sql语句,向order表里插入数 ... -
Mysql参数配置优化说明
2011-09-02 08:45 562转自:http://kangyang.blog.51cto.c ... -
TOMCAT 6数据源配置
2011-08-12 13:08 1055近来换了TOMCAT6,配置MYSQL数据库的数据源,在网上查 ... -
MySQL 5.1 的作业调度
2011-06-02 09:06 1187打从 MySQL 5.1.6 版本 ... -
MySQL删除表中大批量的数据
2011-06-02 09:05 2267假设有一个表(osc_logs)有2000万条记 ... -
MYSQL GRANT和REVOKE语法
2011-05-19 12:59 3286GRANT priv_type [(column_li ... -
MYSQL root密码重置
2011-05-19 12:34 1063方法一:MySQL提供跳过访问控制的命令行参数,通过在命令行以 ... -
用PL/SQL 将excel 导入Oracle
2010-12-20 16:39 1754引自:http://blog.csdn.net/Kne ... -
内连接与外连接
2010-05-05 12:15 1204最近一段时间找工作,对以往的知识进行了复习,以下是本人对数据库 ...
相关推荐
•6.3 删除配置文件中跳过授权表设置, 重启服务,使用root 用户登录数据库[10] •二:mysql 授权管理[11] •1 授予权限[12] •1.1 普通授权[13] •1.2 让被授权的用户可以将权限授予他人[14] •2 查看用户权限...
授权法,介绍远程用户连接mysql数据库,给任意远程主机授权访问mysql server的权限。
MySql用户创建、授权以及删除(office 2007文档)
介绍如何在MySQL中创建用户与授权用户的方法,已经经典实战用途。。。。介绍如何在MySQL中创建用户与授权用户的方法,已经经典实战用途。。。。介绍如何在MySQL中创建用户与授权用户的方法,已经经典实战用途。。。...
Mysql用户及授权
MySQL管理密码用户授权实践,非常详细,可以下载学习实践
#------------mysql root 用户无法赋权问题解决 -------- 1,登录 mysql -u root -p 2,use mysql; 选择mysql数据库 3,执行以下操作(查询用户的赋权权限,更改赋权权限 ,刷新生效) mysql> select user,host,...
MySQL多表查询、事务和管理用户及授权
MySql练习2:创建数据库及登录用户并授权.zip MySql练习2:创建数据库及登录用户并授权.zip MySql练习2:创建数据库及登录用户并授权.zip MySql练习2:创建数据库及登录用户并授权.zip
MySQL新建用户,授权,删除用户,修改密码
--用户授权数据库 *代表整个数据库 4、flush privileges ;--立即启用修改 5、revoke all on *.* from tester;--取消用户所有数据库(表)的所有权限 6、delete from mysql.user where user='tester';--删除...
mysql创建用户及授权
mysql新建用户及授权
MySQL管理员应该知道怎样通过指定哪些用户可连接到服务器、从哪里进行连接,以及在连接时做什么,来设置MySQL用户账号。MySQL3.22.11引入了两个更容易进行这项工作的语句:GRANT 语句创建MySQL用户并指定其权限,...
MySQL管理员应该知道怎样通过指定哪些用户可连接到服务器、从哪里进行...本文讨论了如何设置MySQL用户的账号和授权,还将介绍如何取消权限以及从授权表中删除全部用户,并且将考虑一个困扰许多新的MySQL管理员的难题。
设置mysql数据库远程连接: Windows系统 1、 停止mysql的服务。 2、 进入命令窗口,然后进入MySQL的安装目录,比如我的安装目录是c:\mysql,进入c:\mysql\bin 3、 进入mysql数据库服务器 c:\mysql\bin>mysql –u ...
Mysql一些命令,有添加用户授权命令,一些日期命令,里面有注释,适合新手们学习
mysql如何授权用户 开发用户帮助文档
这里主要介绍了一下MySQL数据库的授权语句,及MySQL内自带数据库及表的介绍与操作。
MySQL 添加用户、删除用户、授权、回收权限