Java培训课程账号管理

2.1创建或更改账号

语句命令方式

有两种方法:

  • 使用GRANT语法创建(推荐)
  • 直接insert,update权限表

GRANT 权限类型列表

on  object_type {表名称|*|*.*|db_name.*}

 to user [identified by password ‘密码’][,user [identified by password ‘密码’] ….

with grant option;

其中:object_type = TABLE | FUNCTION | PROCEDURE

示例:

例1:创建用户admin,权限为可以在所有数据库上执行所有权限,但只能从本地进行连接

GRANT ALL PRIVILEGES ON *.* TO admin@localhost;

可以发现除了Grant_priv权限外,所有权限在user表里面都是Y.

 

例2:在例1基础上,增加对admin的grant权限

GRANT ALL PRIVILEGES ON *.* TO admin@localhost WITH GRANT OPTION;

 

例3:在例2基础上,设置密码为“123”

GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY ‘123’ WITH GRANT OPTION;

 

例4:创建新用户chai,可以从任何IP进行连接,权限为对test数据库的所有表进行SELECT、UPDATE、INSERT、DELETE操作,初始密码为“123”

GRANT SELECT,INSERT,UPDATE,DELETE ON test.* TO ‘chai’@’%’ IDENTIFIED BY ‘123’;

发现此例,user表中权限都是N,db表中增加的记录权限则都是Y。

注意:

  • mysql数据库的user表中user的值为空,表示所有用户都可以连接(此处不能用*,*表示用户名为*的用户了)
  • mysql数据库的user表中host的值为*或空,表示所有外部IP都可以连接,但是不包括本地服务器localhost,因此如果要包括本地服务器,必须单独为localhost赋予权限。如果host的值为%,表示所有IP,包括本地服务器localhost。

Host值

User值

被条目匹配的连接

‘thomas.loc.gov’

‘fred’

fred,从thomas.loc.gov连接

‘thomas.loc.gov’

‘’

任何用户,从thomas.loc.gov连接

‘%’

‘fred’

fred,从任何主机连接

‘%’

‘’

任何用户,从任何主机连接

‘%.loc.gov’

‘fred’

fred,从在loc.gov域的任何主机连接

‘x.y.%’

‘fred’

fred,从在x.y.net,x.y.com等主机连

‘144.155.166.177’

‘fred’

fred,从144.155.166.177的IP地址连接

‘144.155.166.%’

‘fred’

fred,从‘144.155.166.*的C类子网的任何主机连接

如果有多个匹配,服务器必须选择使用哪个条目,按照下述原则来解决:

  • 服务器在启动时读入user表后进行排序
    • 首先以最具体的host值排序,%排后面,如果host相同,以最具体的user值排序,空User值排后面。
  • 服务器使用与客户端和用户名匹配的第一行

navicat图形化界面

1、新建用户

Java培训课程账号管理

2、填写用户名、主机和密码

Java培训课程账号管理

3、配use表的安全列和资源权限列的信息

Java培训课程账号管理

0表示不限制

4、选择user表的权限,这是针对所有数据库的全局权限

Java培训课程账号管理

5、也可以设置单独某个数据库或某个表,或某个列的权限

Java培训课程账号管理

SQLyog图形化界面

1、新建用户

Java培训课程账号管理

2、填写用户名密码和资源权限等

Java培训课程账号管理

3、全局权限

Java培训课程账号管理

4、某个库或某个表等局部权限

Java培训课程账号管理

2.2查看账户权限

show grants for user@host;

 

2.3删除用户

drop user 用户名;

 

经典问题

1、在命令行出现乱码问题

按照数据库时选择utf8, 而我们在windows下窗口是GBK的,因此,需要在命令行客户端声明字符集.

set names gbk;是为了告诉服务器,客户端用的GBK编码,防止乱码.

mysql> set names gbk; 

Query OK, 0 rows affected (0.00 sec) 

可以查看字符集

mysql> show variables like ‘character_set_%’;

 

2、退出当前错误语句

语句打错以后应该退出本语句,再继续打新语句.

也可以打\c,快速退出本语句.

 

3、如何破解数据库的密码?安全模式登录

  • 通过任务管理器或者服务管理,关掉mysqld(服务进程)
  • 通过命令行+特殊参数开启mysqld

mysqld –skip-grant-tables

  • 此时,mysqld服务进程已经打开,并且,不需要权限检查.

4、mysql -uroot  无密码登陆服务器.

5: 修改权限表

  • use mysql;
  • update user set Password = password(‘123456’) where User = ‘root’;
  • flush privileges;

6:通过任务管理器,关掉mysqld服务进程.

7:再次通过服务管理,打mysql服务。

8:即可用修改后的新密码登陆.


上一篇:
下一篇:
关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
电话:010-56253825
邮箱:info@atguigu.com
地址:北京市昌平区宏福科技园综合楼6层(北京校区)

 深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)