linux管理mysql权限_MYSQL用户权限管理

mysql用户和权限管理

作为一名mysql数据库管理员,有责任维护数据库系统上的数据的的完整性和安全性,使得只有被正确授权的用户才可以访问。这将涉及到数据库的外部安全性和内部安全星=性。

所谓外部安全性:就是决定用户是否可以登入到mysql数据库系统上,这样可以有效的避免来自外部网络对服务器连接的***。

内部安全性:即是防止服务器上已存在的用户对mysql服务器上面的数据进行***,因此,一个用户的权限如果设置不好的话,可能导致数据库上面的数据被删除、修改等等。

mysql的授权表

mysql客户能否访问mysql数据库是由mysql的授权表来决定的,这些授权表是在刚刚安装mysql时,进行mysql初始化(mysql_install_db脚本)生成的。这些授权表公有6个,分别是:

user:该表存放了可以访问mysql服务器的用户名和密码,该表中启用的权限为全局权限,且适用于所有库。

db:该表存放的是所有的数据库,该表启用的权限只对该数据库有效。因此,这个表设置的是数据库级别的权限。

host:该表已被废弃

tables_priv:用于指定表级别权限

columns_priv:用于指定烈级别权限

procs_priv:用于指定存储过程和存储函数的相关权限

proxies_priv:用于指定代理用户的相关权限

mysql的权限管理

出于对数据的安全性保护,因此,授予正确的权限给用户史非常重要的,下面这张表记录的就是mysql的所有权限。包括库级别、表级别、索引级别、字段级别、存储函数和存储过程级别、视图级别、文件访问级别以及全局权限等等众多权限。每一个级别及其相关的权限都在下表显示。

context:表示这些权限可以用在哪些环境或级别下。

http://dev.mysql.com/doc/mysql-security-excerpt/5.5/en/privileges-provided.html#priv_create_temporay_tables(使用这个网址可以查询到如下表结构)

PrivilegeColumnContextCreate_privdatabases, tables, or indexes

Drop_privdatabases, tables, or views

Grant_privdatabases, tables, or stored routines

Lock_tables_privdatabases

References_privdatabases or tables

Event_privdatabases

Alter_privtables

Delete_privtables

Index_privtables

Insert_privtables or columns

Select_privtables or columns

Update_privtables or columns

Create_tmp_table_privtables

Trigger_privtables

Create_view_privviews

Show_view_privviews

Alter_routine_privstored routines

Create_routine_privstored routines

Execute_privstored routines

File_privfile access on server host

Create_tablespace_privserver administration

Create_user_privserver administration

Process_privserver administration

See proxies_privtableserver administration

Reload_privserver administration

Repl_client_privserver administration

Repl_slave_privserver administration

Show_db_privserver administration

Shutdown_privserver administration

Super_privserver administration

server administration

server administration

创建用户、为用户授权和取消授权

1、创建用户

mysql> CREATE USER username@’host’ [IDENTIFIED BY ‘password’]

其中username必须在16个字符以内才行

host:可以表示的方法有这些:

HOSTNAME:例如www.baidu.com

IP:例如192.168.1.1

NETWORK:例如172.16.0.0/255.255.0.0

通配符表示法:

%:任意长度的任意字符,如%.xsl.com:表示这个域内的所有主机。

_:表示任意单个字符。

[IDENTIFIED BY ‘password’]:表示在创建用户的时候为该用户设置密码。

在连接mysql服务器时,mysql服务器为了验证远程主机的合法性,一般会进行正解和反解主机名,使用--skip-name-resolv选项可以忽略名称解析过程,这可以在某一程度上缓解mysql服务器的连接和加速mysql的性能及节约时间。

2、为用户授权

授权命令使用GRANT

GRANT的语法格式为:

mysql> 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:表示权限类型,就是上表最左边的字段,那里有所有的权限类型

column_list:是可选字段,表示对指定的字段授权。可以指定多个。

object_type:表示对象类型,主要有有三个:

TABLE(表)、FUNCTION(存储函数)、PROCEDURE(存储过程)

priv_level:表示权限级别,设置在哪个级别下的权限

*:表示授予当前数据库级别下的权限。

| *.*:如果使用这中方式,必须要指定对象类型字段。用来说明是设定库的表、库的存储函数还是库的存储过程等相关权限。默认对象类型为table,因此默认表示所有库的所有表。

| db_name.*:如果使用这中方式,必须要指定对象类型字段。用来说明是设定库的表、库的存储函数还是库的存储过程等相关权限。默认对象类型为table,因此默认表示指定库下的所有表。

| db_name.tbl_name:表示设定某个库下的某个表的权限。

| tbl_name:表示设定在某个表的权限。

| db_name.routine_name:表示设定某个库的某个存储程序的相关权限。

user_specification:username@’hostname’ [IDENTIFIED BY [PASSWORD] 'password'],为某个用户授权。

[IDENTIFIED BY [PASSWORD] 'password']:如果该用户密码已经存在,则命令会修改该用户的密码。

说明:如果要想创建库的话,还需指定对所有的表有权限。如:

mysql> grant create on *.* to test@'localhost';

mysql> grant create on testdb.* to test@'localhost';

ssl_option:这些是使用ssl来建立mysql会话时使用的选项

SSL

| X509

with_option:

GRANT OPTION:允许将此权限传授给其他用户。

| MAX_QUERIES_PER_HOUR count:每小时的最大查询请求数

| MAX_UPDATES_PER_HOUR count:每小时的最大更新请求数

| MAX_CONNECTIONS_PER_HOUR count:每小时的最大连接数

| MAX_USER_CONNECTIONS count:同一个账号最多可以连接几次

查看用户授权信息

授权完毕后,执行flush privilege命令让系统重读授权表

重读授权表

Flush  privileges

在帮用户授权完毕后,执行该命令,可以让内存重读授权表。当mysql服务启动后,系统会加载授权表到内存中去,因此,一旦授权表更改,必须让内存重读授权表。

3、取消用户授权revoke

REVOKE命令可以用来取消用户相关权限的,其语法和命令和GRANT命令大概一致

mysql> REVOKEpriv_type [(column_list)]   [, priv_type [(column_list)]] ...ON  [object_type] priv_level

FROM  user [,user] …

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值