ijava学习网> 知识分享> Linux> mysql用户管理

mysql用户管理

时间: 2018-12-05 17:01:55 标签36 , MySQL , 用户管理

用户账号管理

创建账号

CREATE USER username@hostname

  [

      IDENTIFIED BY [PASSWORD] 'password'

  ]

主机也可以使用通配符:testuser@'192.168.100.1_ _'

表示可以使用100.100-100.199

  

CREATE USER 'testuser'@'192.168.%.%' IDENTIFIED BY 'testpass';

查看用户能够使用的权限

SHOW GRANTS FOR 'testuser'@'192.168.%.%';

重命名账号

RENAME USER old_user TO new_user

  [, old_user TO new_user] ...

RENAME USER 'testuser'@'192.168.%.%' TO 'myuser'@'192.168.130.%';

重置密码

SET PASSWORD [FOR user] = PASSWORD('auth_string')

SET PASSWORD FOR 'myuser'@'192.168.130.%' = PASSWORD('mypass');

删除账号

DROP USER 'myuser'@'192.168.130.%';

权限管理:

GRANT(授予权限)

    priv_type [(column_list)]

      [, priv_type [(column_list)]] ...

    ON [object_type] priv_level

    TO user_specification [, user_specification] ...

    [REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}]

    [WITH with_option ...]


priv_type 

管理类权限

create temporary tables     创建临时表

create user                         创建用户

file                                     允许用户读或者写某些文件

lock tables                         添加显式锁

process                              查看用户的线程

reload                                相当于执行flush和reset

replication client                查询有哪些复制客户端

replication slave                赋予用户复制权限

show databases

shutdown

super

数据库访问权限

alter                     修改表

alter routine        存储历程

create                  创建库和表

create routine    存储过程,存储函数

create view        创建视图

delete                删除表行

drop                   删除库和表

execute              执行存储过程,存储函数

grant option      将自己的权限复制给别的用户

index                 创建删除索引

INSERT              插入数据

SELECT              查询数据

show view        查看视图如何被创建

update              更新数据


object_type:

    TABLE

  | FUNCTION

  | PROCEDURE


priv_level:

    *

  | *.*

  | db_name.*

  | db_name.tbl_name

  | tbl_name

  | db_name.routine_name


user_specification:

    user

    [

        IDENTIFIED BY [PASSWORD] 'password'

      | IDENTIFIED WITH auth_plugin [AS 'auth_string']

    ]


ssl_option:

    SSL

with_option:

    GRANT OPTION 转赠给别人

  | MAX_QUERIES_PER_HOUR count                        每小时允许执行的最大查询次数

  | MAX_UPDATES_PER_HOUR count                       每小时允许执行的最大更新次数

  | MAX_CONNECTIONS_PER_HOUR count          每小时允许执行的最大连接次数

  | MAX_USER_CONNECTIONS count                      使用同一个账号可以同时连接的次数


  要想创建库应该对所有表都有权限


REVOKE(收回授权)

    priv_type [(column_list)]

      [, priv_type [(column_list)]] ...

    ON [object_type] priv_level

    FROM user [, user] ...


    REVOKE ALL PRIVILEGES, GRANT OPTION

    FROM user [, user] ...


    REVOKE PROXY ON user

    FROM user [, user] ...


REVOKE CREATE ON testdb.tb1 FROM 'tuser'@'192.168.%.%'; 


几个跟用户授权相关的表:

    db:库级别的权限

    host:主机级别权限,已废弃

    tables_priv:表级别权限

    colomns_priv:列级别的权限

    procs_priv:存储过程和存储函数相关的权限

    proxies_priv:代理用户权限·


练习:

1、授权testuser能够通过192.168.0.0/16网络内的任意主机访问当前mysql服务器的权限

GRANT ALTER ON *.* TO 'testuser'@'192.168.%.%' IDENTIFIED BY 'testpass';


2、让此用户能够创建和删除testdb数据库,及库中的表

GRANT CREATE,DROP ON testdb.* to 'testuser'@'192.168.%.%';


3、让此用户能够在testdb库中的t1表中执行查询、删除、更新和插入操作

GRANT SELECT,UPDATE,INSERT,DELETE ON testdb.t1 TO 'testuser'@'192.168.%.%';


4、让此用户能够在testdb库上创建和删除索引

GRANT INDEX ON testdb.* TO 'testuser'@'192.168.%.%';


5、让此用户能够在testdb.t2表上查询id和name字段,并允许其将此权限传授予其他用户

GRANT SELECT(id,name) ON testdb.t2 TO 'testuser'@'192.168.%.%';

GRANT GRANT OPTION ON testdb.t2 TO 'testuser'@'192.168.%.%';  


版权说明| 关于ijava| 合作伙伴| 联系我们| 网站地图| 招贤纳士

Copyright © 2017 www.ijava.com All Rights Reserved 版权所有•ijava学习网 京ICP备14061482号-18         官方QQ:3325669927

ijava学习网提供免费java教程和大量java面试题库,给高级会员提供免费的java培训,同时提共一些java开发项目和java下载,java工程师,java菜鸟们快来哦。记住我们的网站:www.ijava.com