竹磬网-邵珠庆の日记 生命只有一次,你可以用它来做些更多伟大的事情–Make the world a little better and easier


66月/170

MySQL用户权限管理

发布在 邵珠庆

用户权限管理主要有以下作用:
1. 可以限制用户访问哪些库、哪些表
2. 可以限制用户对哪些表执行SELECT、CREATE、DELETE、DELETE、ALTER等操作
3. 可以限制用户登录的IP或域名
4. 可以限制用户自己的权限是否可以授权给别的用户

一、用户授权

mysql> grant all privileges on *.* to 'yangxin'@'%' identified by 'yangxin123456' with grant option;
  • all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
  • on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user
  • to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:”yangxin”@”192.168.0.%”,表示yangxin这个用户只能在192.168.0IP段登录
  • identified by:指定用户的登录密码
  • with grant option:表示允许用户将自己的权限授权给其它用户

可以使用GRANT给用户添加权限,权限会自动叠加,不会覆盖之前授予的权限,比如你先给用户添加一个SELECT权限,后来又给用户添加了一个INSERT权限,那么该用户就同时拥有了SELECT和INSERT权限。

用户详情的权限列表请参考MySQL官网说明:http://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html
权限列表

二、刷新权限

对用户做了权限变更之后,一定记得重新加载一下权限,将权限信息从内存中写入数据库

mysql> flush privileges;

三、查看用户权限

mysql> grant select,create,drop,update,alter on *.* to 'yangxin'@'localhost' identified by 'yangxin0917' with grant option;
mysql> show grants for 'yangxin'@'localhost';

授权信息

四、回收权限

删除yangxin这个用户的create权限,该用户将不能创建数据库和表。

mysql> revoke create on *.* from 'yangxin@localhost';
mysql> flush privileges;

五、删除用户

mysql> select host,user from user;
+---------------+---------+
| host          | user    |
+---------------+---------+
| %             | root    |
| %             | test3   |
| %             | yx      |
| 192.168.0.%   | root    |
| 192.168.0.%   | test2   |
| 192.168.0.109 | test    |
| ::1           | yangxin |
| localhost     | yangxin |
+---------------+---------+
8 rows in set (0.00 sec)
mysql> drop user 'yangxin'@'localhost';

六、用户重命名

shell> rename user 'test3'@'%' to 'test1'@'%';

七、修改密码

1> 更新mysql.user表

mysql> use mysql;
# mysql5.7之前
mysql> update user set password=password('123456') where user='root';
# mysql5.7之后
mysql> update user set authentication_string=password('123456') where user='root';
mysql> flush privileges;

2> 用set password命令

语法:set password for ‘用户名’@’登录地址’=password(‘密码’)

mysql> set password for 'root'@'localhost'=password('123456');

3> mysqladmin

语法:mysqladmin -u用户名 -p旧的密码 password 新密码

mysql> mysqladmin -uroot -p123456 password 1234abcd

注意:mysqladmin位于mysql安装目录的bin目录下

八、忘记密码

1> 添加登录跳过权限检查配置

修改my.cnf,在mysqld配置节点添加skip-grant-tables配置

[mysqld]
skip-grant-tables

2> 重新启动mysql服务

shell> service mysqld restart

3> 修改密码

此时在终端用mysql命令登录时不需要用户密码,然后按照修改密码的第一种方式将密码修改即可。
忘记密码修改过程
注意:mysql库的user表,5.7以下版本密码字段为password,5.7以上版本密码字段为authentication_string

4> 还原登录权限跳过检查配置

将my.cnf中mysqld节点的skip-grant-tables配置删除,然后重新启动服务即可。

2211月/100

用户不上你的网站的50个原因

发布在 邵珠庆

原因如下:

1 他们不想生产内容,他们期望的是更好的生活
2 因为你能解决的问题是他们所没有的问题
3 而对于他们真正的问题你却无法解决
4 奥普拉没有提到过它
5 他们所认识的所有人都不上你的网站
6 你没有办法让他们窥视自己所喜欢的人
7 他们对自己所看见的并不在乎
8 没有哪个同事说应该上这个网站
9 它很没趣
10 它无法让人们开怀大笑
11 它没有办法帮人们省下一大笔钱
12 它没有办法帮人们节省时间
13 没有什么让他们感到激动万分的东西
14 它既不能拯救生命也不能拯救世界
15 它不像赌城那样充满刺激
16 它看上去像是花旗银行的广告,而人们憎恨它
17 没有人排队
18 他们又工作,有孩子,工作繁忙
19 因为他们和美国偶像节目的选手有约会
20 他们害怕电脑
21 他们有了足够的朋友
22 他们文笔不好
23 更多的人在用Craiglist
24  你没有告诉他们怎么去做
25  不上这个网站,没有人会认为他是白痴
26 它是为了怪人和白痴准备的
27 它肯定是为了那些“电脑高手”准备的
28 有人会盗窃他们的身份而诱拐其孩子
29 他们不明白你的专业术语
30 他们更擅长于让那些让你感到无能为力的事
31 他们出生于1985年以前
32 他们对电脑并不精通
33 他们很害羞
34 他们不像Yahoo, Amazon或者Ebay那样
35 它的主页不止一屏,不像Google那样
36 他们感觉沮丧
37 他们不想坐在电脑面前
38 他们尝试过使用它,但是结果一团糟
39 他们从来就没有听过它
40 他们有更重要的事情要做
41 周刊更吸引人
42 它上面写着什么”tag”,”RSS”,简直愚蠢透顶
43 家庭和朋友需要他们
44 他们不想过的那么沉闷
45 他们从来没有听说过Flickr和Del.icio.us
46 没有足够的人使用它,也没有成功的例子
47 没有暴露图片和名人消息
48 没有告诉他们为什么要用它
49 它不能提供给他们爱情和性
50 他们不想知道你想让他们做什么