mysql grants小记

安装mycheckpoint的时候,给这个监控用户分权限的时候,发现了这个秘密:


代码如下:

mysql>
mysql> GRANT ALL PRIVILEGES ON mycheckpoint.* TO 'mycheckpoint_user'@'localhost' IDENTIFIED BY '123456';
ERROR 1470 (HY000): String 'mycheckpoint_user' is too long for user name (should be no longer than 16)
mysql>

grant命令是对mysql数据库进行用户创建,权限或其他参数控制的强大的命令,官网上介绍它就有几大页,要用精它恐怕不是一日半早的事情,权宜根据心得慢慢领会吧!
grant命令的简单介绍是这样的:
The GRANT statement enables system administrators to grant privileges to MySQL user accounts. GRANT also serves to specify other account characteristics such as use of secure connections and limits on access to server resources. To use GRANT, you must have the GRANT OPTION privilege, and you must have the privileges that you are granting.
这段话的意思是说:grant命令允许系统管理员对mysql 用户账号(user account)授予各类权限(grant privileges),grant当然也可以用于设置帐号的其他特征如安全连接和服务资料访问限制等,为使用grant命令,必须有GRANT OPTION 权限,同是你必须有你要授予权限的权限!
使用show grant命令 SHOW GRANTS [FOR user]
该命令的解释是:This statement lists the GRANT statement or statements that must be issued to duplicate the privileges that are granted to a MySQL user account.
如果要需要当前用户的权限,可以使用这下三条命令之一:

SHOW GRANTS;SHOW GRANTS FOR CURRENT_USER;SHOW GRANTS FOR CURRENT_USER();在本机上运行命令的效果(当用使用的root用户连接到mysql)使用grant命令前,需要搞清楚以下信息:grant 的类型,即你要授予什么权限(privilege type),是允许查询?插入行?创建?还是其他等等。grant 的对象类型(priv_type),有三种:TABLE、 FUNCTION、PROCEDURE,还有一种是默认的,就是DATABASE数据库。grant 的对象(priv_level):是作用于所有数据库呢?还是作用于某一数据库,是作用于数据库的所有表,还是某一个单一的表,甚至是表中的某些列!可以这样做个想象,用户就是一个城管执法者:他有那些权限(privilege type),驱赶走鬼?没收走鬼的东西?他管理那类(priv_type)走鬼呢?卖水果的?烘烤的还是卖钸口的?他管理的范围是什么:整个区?某条街道?最后,不同的权限会能或不能作用于不同的对象类型和范围,以下是部分截图,具体可能参考:
dev.mysql.com/doc/refman/5.1/en/privileges-provided.html

以下是某些权限的解数截图,详细在dev.mysql.com/doc/refman/5.1/en/grant.html

(0)

相关推荐

  • MySQL的Grant命令详解

    本文实例,运行于 MySQL 5.0 及以上版本. MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. 复制代码 代码如下: grant select on testdb.* to common_user@'%'grant insert on testdb.* to common_user@'%'grant update on testdb.* to common_us

  • mysql grants小记

    安装mycheckpoint的时候,给这个监控用户分权限的时候,发现了这个秘密: 复制代码 代码如下: mysql> mysql> GRANT ALL PRIVILEGES ON mycheckpoint.* TO 'mycheckpoint_user'@'localhost' IDENTIFIED BY '123456'; ERROR 1470 (HY000): String 'mycheckpoint_user' is too long for user name (should be n

  • MySQL查询用户权限的方法总结

    介绍两种查看MySQL用户权限的两种方法 1. 使用MySQL grants命令 mysql> show grants for username@localhost; +---------------------------------------------------------------------+ | Grants for root@localhost | +---------------------------------------------------------------

  • mysql下mysql-udf-http效率测试小记

    看到张宴的博客上关于"http/rest客户端的文章",怎样安装啥的直接都跳过,下面直接进入测试阶段,测试环境:虚拟机 复制代码 代码如下: [root@localhost ~]# uname -a Linux sunss 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST 2009 i686 i686 i386 GNU/Linux 内存和交换分区: 复制代码 代码如下: [root@localhost ~]# free -m total use

  • php&mysql 日期操作小记

    在时间比较查询的时候,int的效率明显更高.祥文见http://www.jb51.net/article/29767.htm 但是在做项目的时候或者直接在数据库查看数据的时候,明显这个int一看头就大,比如我们想 要查看一个用户的注册时间: select reg_time from t_xx_users where user_id=1; 这时候返回是个int值,不能直观的看到具体的时间,所以这时候就涉及到datetime和int的转化问题, 还有php的date和time也是要涉及到相应的转化.

  • 小记一次mysql主从配置解决方案

    今天研究了个开源项目,数据库是mysql的,其中的脚本数据需要备份,由于本人的机器时mac pro,而且mac下的数据库连接工具都不怎么好用,就想着如何利用windows下的数据库连接工具使用,并做相关备份,另外windows系统下的sqlyog工具还是非常强大的,在此推荐. 因此为了使用sqlyog等windows系统下的连接工具,便开始了一天的折腾. 首先两种思路,其一是利用另外一台宏碁笔记本电脑,直接在其上安装sqlyog使用,通过无线局域网进行连接使用,这种方式太过麻烦,而且来回换电脑很

  • MySQL创建用户与授权方法

    注:我的运行环境是widnows xp professional + MySQL5.0 一, 创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码

  • 详细讲解安全升级MySQL的方法

    MySQL升级是非常必要的. 我们在Percona Support上列出了关于MySQL升级最佳实践的各种问题.这篇文章推荐了一些不同情况下升级MySQL的方法. 为什么MySQL升级是必须的? 原因有很多,比如:为了使用新增的特性,基于性能方面的考量, 修复的bug. 但是在没有充分的测试以前就应用到你的应用中是非常危险的, 因为升级可以能会让你的应用不能正常运作- 也可能引起性能的问题. 此外, 我建议你关注MySQL的发布信息和Percona Server- 看看最近的版本有什么变化. 也

  • MySQL与Oracle SQL语言差异比较一览

    数据类型 编号 ORACLE MYSQL 注释 1 NUMBER int / DECIMAL DECIMAL就是NUMBER(10,2)这样的结构INT就是是NUMBER(10),表示整型: MYSQL有很多类int型,tinyint mediumint bigint等,不同的int宽度不一样 2 Varchar2(n) varchar(n) 3 Date DATATIME 日期字段的处理 MYSQL日期字段分DATE和TIME两种,ORACLE日期字段只有DATE,包含年月日时分秒信息,用当前

  • MySQL与Oracle 差异比较之七用户权限

    用户权限 编号 类别 ORACLE MYSQL 注释 1 创建用户 Create user user_name identified by user_password  default tablespace starSpace temporary tablespace temp; CREATE USER user_name IDENTIFIED BY user_password; 1.oracle创建用户 Oracle 的默认用户有三个: sys / system / scott. 其中sys和

  • 详解MySQL主从复制实战 - 基于GTID的复制

     基于GTID的复制 简介 基于GTID的复制是MySQL 5.6后新增的复制方式. GTID (global transaction identifier) 即全局事务ID, 保证了在每个在主库上提交的事务在集群中有一个唯一的ID. 在原来基于日志的复制中, 从库需要告知主库要从哪个偏移量进行增量同步, 如果指定错误会造成数据的遗漏, 从而造成数据的不一致. 而基于GTID的复制中, 从库会告知主库已经执行的事务的GTID的值, 然后主库会将所有未执行的事务的GTID的列表返回给从库. 并且可

随机推荐