`
kakarot_java
  • 浏览: 163695 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
MySQL:grant 语法详解(MySQL 5.X)
MySQL:Grant 语法详解(MySQL 5.X)
MySQL:grant 语法详解(MySQL 5.X)
本文实例,运行于 MySQL 5.0 及以上版本。

MySQL 赋予用户权限命令的简单格式可概括为:

grant 权限 on 数据库对象 to 用户
一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。
grant select on testdb.* to common_user@'%'
grant insert on testdb.* to common_user@'%'
grant update on testdb.* to common_user@'%'
grant delete on testdb.* to common_user@'%'
或者,用一条 MySQL 命令来替代:

grant select, insert, update, delete on testdb.* to common_user@'%'
二、grant 数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限。
grant 创建、修改、删除 MySQL 数据表结构权限。

grant create on testdb.* to developer@'192.168.0.%';
grant alter  on testdb.* to developer@'192.168.0.%';
grant drop   on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 外键权限。

grant references on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 临时表权限。

grant create temporary tables on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 索引权限。

grant index on  testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 视图、查看视图源代码 权限。

grant create view on testdb.* to developer@'192.168.0.%';
grant show   view on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 存储过程、函数 权限。

grant create routine on testdb.* to developer@'192.168.0.%';  -- now, can show procedure status
grant alter  routine on testdb.* to developer@'192.168.0.%';  -- now, you can drop a procedure
grant execute        on testdb.* to developer@'192.168.0.%';
三、grant 普通 DBA 管理某个 MySQL 数据库的权限。
grant all privileges on testdb to dba@'localhost'
其中,关键字 “privileges” 可以省略。

四、grant 高级 DBA 管理 MySQL 中所有数据库的权限。
grant all on *.* to dba@'localhost'
五、MySQL grant 权限,分别可以作用在多个层次上。
1. grant 作用在整个 MySQL 服务器上:

grant select on *.* to dba@localhost; -- dba 可以查询 MySQL 中所有数据库中的表。
grant all    on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有数据库
2. grant 作用在单个数据库上:

grant select on testdb.* to dba@localhost; -- dba 可以查询 testdb 中的表。
3. grant 作用在单个数据表上:

grant select, insert, update, delete on testdb.orders to dba@localhost;
4. grant 作用在表中的列上:

grant select(id, se, rank) on testdb.apache_log to dba@localhost;
5. grant 作用在存储过程、函数上:

grant execute on procedure testdb.pr_add to 'dba'@'localhost'
grant execute on function  testdb.fn_add to 'dba'@'localhost'
六、查看 MySQL 用户权限
查看当前用户(自己)权限:

show grants;
查看其他 MySQL 用户权限:

show grants for dba@localhost;
七、撤销已经赋予给 MySQL 用户权限的权限。
revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:

grant  all on *.* to   dba@localhost;
revoke all on *.* from dba@localhost;
八、MySQL grant、revoke 用户权限注意事项
1. grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。

2. 如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 “grant option“

grant select on testdb.* to dba@localhost with grant option;
这个特性一般用不到。实际中,数据库权限最好由 DBA 来统一管理。



转载:http://www.sqlstudy.com/sql_article.php?id=2008080601

分享到:
评论

相关推荐

    MySQL:grant_语法详解(MySQL_5.X)

    在MySQL 5.X版本中,grant语句是用来授权给用户权限的命令。该命令能够实现将特定的权限赋予MySQL中的特定用户,从而控制他们对数据库的操作。 一、权限的基本分类 MySQL中的权限大致可以分为两类:一类是普通数据...

    MySQL-Grant命令说明

    ### MySQL Grant 命令详解:用户权限管理与分配 #### 概述 在数据库管理中,权限控制是一项至关重要的任务,它确保了数据的安全性和完整性。MySQL通过`GRANT`命令提供了强大的权限管理功能,允许数据库管理员为...

    MySQL的Grant命令

    ### MySQL的Grant命令详解 #### 一、Grant命令概述 MySQL中的`GRANT`命令用于授予用户特定的数据库权限。这些权限可以根据不同的需求细分为多种类型,并且可以在不同的层级上进行授权,包括整个服务器级别、单个...

    mysql数据库mysql: [ERROR] unknown option –skip-grant-tables

    mysql数据库报ERROR 1045 (28000): Access denied for user ‘ODBC’@’localhost...kip-grant-tables   # 设置mysql客户端默认字符集   default-character-set=utf8   [mysqld]   #设置3306端口   port = 3

    mysql数据库mysql: [ERROR] unknown option '--skip-grant-tables'

    首先,“--skip-grant-tables”是MySQL中的一个命令行选项,用于启动MySQL服务器时告诉服务器跳过权限检查,允许无需密码即可登录MySQL。这种方式常用于忘记root密码或是需要紧急修复数据库权限问题时。 然而,在...

    linux安装mysql(实测没问题)

    - 登录 MySQL 后执行 `GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;` 授予 root 用户远程访问权限。 - 执行 `FLUSH PRIVILEGES;` 刷新权限。 #### 七、设置开机...

    MySQL的Grant命令详解

    本文实例,运行于 MySQL 5.0 及以上版本。 MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户  一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。 代码...

    Mysql命令大全 Mysql命令大全

    Mysql 提供了 grant 命令来增加新用户。基本格式为:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”。 * 增加一个用户 test1,密码为 abc,让他可以在任何主机上登录,并对所有数据库有查询、...

    mysql命令行常用命令

    MySQL 命令行常用命令是 MySQL 数据库管理员和开发者需要掌握的基本技能,本文将介绍 MySQL 命令行常用命令的六大招数,包括 MySQL 服务的启动和停止、登陆 MySQL、增加新用户、操作数据库、导出和导入数据、乱码...

    linux操作mysql命令大全分享.pdf

    Linux 操作 MySQL 命令大全分享 本文档主要介绍了 Linux 操作系统下 MySQL 数据库的常用命令,涵盖了 MySQL 的启动、重启、关闭、连接、修改密码、增加新用户、数据库操作、数据的导入导出等方面。 一、MySQL 的...

    创建mysql用户赋予某指定库表的权限 (1).pdf

    MySQL 用户权限管理与授权 MySQL 用户权限管理是 MySQL 安全性管理...GRANT 语句是 MySQL 用户权限管理的重要组件之一,通过 GRANT 语句,管理员可以灵活地授予用户不同的权限,以控制用户对数据库的访问和操作权限。

    Mac上安装MySQL

    "Mac 上安装 MySQL" Mac 上安装 MySQL 是一个非常重要的数据库管理系统,下面将对安装、配置、基本操作等方面进行详细的介绍。 一、安装 MySQL 在 Mac 上安装 MySQL 需要从 MySQL 官方网站...

    MySQL数据库常用命令大全.doc

    mysql> grant all privileges on *.* to userlocalhost identified by 'something' with grant option; 七、显示当前 MySQL 版本和当前日期 可以使用以下命令来显示当前 MySQL 版本和当前日期: select version()...

    Oracle与SQL和Mysql的对比笔记

    - MySQL: 使用`GRANT`和`REVOKE`语句 17. **删除数据库用户和登录账户** - Oracle: `DROP USER 数据库用户 CASCADE`,`DROP PUBLIC SYNONYM`等 - SQL Server: `EXEC sp_revokedbaccess '数据库用户'`,`EXEC sp_...

Global site tag (gtag.js) - Google Analytics