设为首页 加入收藏

TOP

MySQL优化之――权限管理(二)
2015-07-24 11:53:49 来源: 作者: 【 】 浏览:7
Tags:MySQL 优化 权限 管理
' identified BY 'testpwd' SELECT `Host` ,`User` ,`Select_priv` ,`Update_priv` FROM mysql.user WHERE `User` ='testUser';

?

执行结果显示执行成功,使用SELECT语句查询用户testUser的权限

\

查询结果显示SELECT和UPDATE权限字段均为Y

注意:User表中的user和host字段区分大小写,在查询的时候要指定正确的用户名或主机名


直接操作MYSQL用户表

不管是CREATE USER还是GRANT USER,在创建用户时,实际上都是在user表中添加一条新记录。

使用INSERT语句向mysql.user表INSERT一条记录来创建一个新用户

插入的时候必须要有INSERT权限

?

INSERT INTO mysql.user(host,user,password,[privilegelist])
VALUES ('host','username',password('password'),privilegeva luelist)

?

使用INSERT创建一个新用户,其用户名称为customer1,主机名为localhost,密码为customer1

?

INSERT INTO mysql.user(host,user,password)
VALUES ('localhost','customer1',password('customer1'))

?

\

语句执行失败,查看警告信息如下:

?

show WARNINGS ;

?

\

因为ssl_cipher这个字段在user表中没有定义默认值,所以在这里提示错误信息。

影响insert语句的执行,使用SELECT语句查看user表中的记录

\

可以看到,插入失败


删除普通用户

使用DROP USER语句删除用户,也可以直接通过DELETE从mysql.user表中删除对应的记录来删除用户

DROP USER语句用于删除一个或多个MYSQL帐户。要使用DROP USER,必须拥有MYSQL数据库的全局

CREATE USER 权限或DELETE权限。

删除testUser这个用户

?

DROP user 'testUser'@'localhost';

?

\

\

可以发现testUser这个用户已经删除了

使用delete语句删除用户

?

DELETE FROM mysql.user WHERE `Host`='localhost' and `User`='testUser'

?


root用户修改自己的密码

修改root密码的方式有多种

1、使用mysqladmin命令在命令行指定新密码

?

mysqladmin -u root -p password"rootpwd"

?

2、修改mysql数据库的user表

?

UPDATE mysql.user SET `Password` =password('rootpwd') WHERE `User`='root' and `Host`='localhost'

?

password('')函数用来加密用户密码。执行update之后需要执行flush privileges语句重新加载用户权限

3、使用SET语句修改root用户的密码

SET PASSWORD语句可以用来重新设置其他用户的登录密码或者自己使用的帐户密码

语法

?

SET PASSWORD=PASSWORD("ROOTPWD")

?

新密码必须用PASSWORD函数加密

使用root用户登录到mysql之后执行下面语句

?

SET password=password('123456')

?

执行之后需要使用执行flush privileges语句或者重启MYSQL重新加载用户权限


root用户修改普通用户密码

1、使用SET语句修改普通用户的密码

?

SET PASSWORD FOR 'USER'@'HOST' =PASSWORD("ROOTPWD") 

?

2、使用update语句修改普通用户的密码

?

UPDATE mysql.user SET `Password` =password('rootpwd') WHERE `User`='root' and `Host`='localhost'

?

执行完毕之后需要使用flush privileges语句或者重启MYSQL重新加载用户权限

3、使用GRANT语句修改普通用户密码

?

GRANT USAGE ON *.* TO 'someuser'@'%'  IDENTIFIED BY 'somepwd'

?

使用下面语句把testUser用户的密码改为123456

?

grant USAGE ON *testUser*TO 'localhost' identified BY '123456';

?

注意:使用GRANT语句和MYSQLADMIN设置密码,他们均会加密密码,这种情况下,不需要使用PASSWORD()函数


普通用户修改密码

使用SET语句修改自己的密码

?

SET password=password('newpassword'); 

?

比如修改testUser这个用户的密码,需要使用testUser这个用户登录到mysql,然后执行

?

SET password=password('123456');

?


root用户密码丢失的解决办法

使用--skip-grant-tables选项启动MYSQL服务

使用--skip-grant-tables选项启动MYSQL时,服务器将不加载权限判断,任何用户都能访问数据库

LINUX下

使用mysqld_safe来启动MYSQL服务,也可以使用/etc/init.d/mysql命令来启动mysql

?

mysqld_safe --skip-grant-tables user=mysql

?

或者

?

/etc/init.d/mysql start-mysqld --skip-grant-tables

?

启动MYSQL服务后,就可以使用root用户登录了

Windows下

详细可以看一下这篇文章

Windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes


权限管理

MYSQL中的各种权限

对于GRANT和REVOKE语句,priv_type可以被指定为以下任何一种:

权限

意义

ALL [PRIVILEGES]

设置除GRANT OPTION之外的所有简单权限

ALTER

允许使用ALTER TABLE

ALTER ROUTINE

更改或取消已存储的子程序

CREATE

允许使用CREATE TABLE

CREATE ROUTINE

创建已存储的子程序

CREATE TEMPORARY TABLES

允许使用CREATE TEMPORARY TABLE

CREATE USER

允许使用CREATE USER, DROP USER, RENAME USER和REVOKE ALL PRIVILEGES。

CREATE VIEW

允许使用CREATE VIEW

DELETE

允许使用DELETE

DROP

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Mysql中创建序列的方法 下一篇mysql技术内幕之InnoDBInsert(插..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Announcing October (2025-12-24 15:18:16)
·MySQL有什么推荐的学 (2025-12-24 15:18:13)
·到底应该用MySQL还是 (2025-12-24 15:18:11)
·进入Linux世界大门的 (2025-12-24 14:51:47)
·Download Linux | Li (2025-12-24 14:51:44)