MySQL如何使用授权命令grant

本文实例,运行于 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;

这里在给一个用户授权多张表时,可以多次执行以上语句。例如:

grant select(user_id,username) on smp.users to mo_user@'%' identified by '123345';
grant select on smp.mo_sms to mo_user@'%' identified by '123345';

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 来统一管理。

以上就是MySQL如何使用授权命令grant的详细内容,更多关于MySQL 授权命令grant的资料请关注我们其它相关文章!

(0)

相关推荐

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

    mysql数据库报ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) 看到网上说要配置my.ini 我的是win10系统,用的是mysql-5.7.18-winx64mysql 文件里没有my.ini,在网上看到可以自己建,就家加了一个 内容如下: [mysql]s kip-grant-tables # 设置mysql客户端默认字符集     default-character-se

  • MySQL的Grant命令详解

    本文实例,运行于 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_us

  • 浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解

    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 c

  • Mysql权限管理grant命令使笔记

    MySQL 赋予用户权限命令的简单格式可概括为: 复制代码 代码如下: grant 权限 on 数据库对象 to 用户  [identified by '密码'] 最常用的,弄主从同步的时候,给从库的slave用户设置拥有所有权限,权限all仅允许其从192.168.0.2登录,并限定使用密码 funsion  (密码要用 单/双引号 括起来) 复制代码 代码如下: grant all on *.* to slave@192.168.0.2 identified by 'funsion'; 执行

  • 使用SKIP-GRANT-TABLES 解决 MYSQL ROOT密码丢失

    忘记MySQL(和PHP搭配之最佳组合) ROOT密码是在MySQL(和PHP搭配之最佳组合)使用中很常见的问题,可是有很多朋友并不会重置ROOT密码,那叫苦啊,我有深有感触,特写此文章与大家交流: 1.编辑MySQL(和PHP搭配之最佳组合)配置文件: windows环境中:%MySQL(和PHP搭配之最佳组合)_installdir%\my.ini //一般在MySQL(和PHP搭配之最佳组合)安装目录下有my.ini即MySQL(和PHP搭配之最佳组合)的配置文件. linux环境中:/e

  • mysql server is running with the --skip-grant-tables option

    The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 意思貌似MYSQL还运行在 --skip-grant-tables模式,如何让他回到原来的模式 第一种方法:原来在mysql.ini文件中配置了skip-grant-tables,前面加个#注释掉就可以了 修改mysql的配置文件,把skip-grant-tables去掉后,重启mysql 第二种:

  • mysql grants小记

    安装mycheckpoint的时候,给这个监控用户分权限的时候,发现了这个秘密: 复制代码 代码如下: mysql> mysql> GRANT ALL PRIVILEGES ON mycheckpoint.* TO 'mycheckpoint_user'@'localhost' IDENTIFIED BY '123456'; ERROR 1470 (HY000): String 'mycheckpoint_user' is too long for user name (should be n

  • MySQL如何使用授权命令grant

    本文实例,运行于 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@'%' gr

  • MySQL授权命令grant的使用方法小结

    MySQL授权命令grant的使用方法: 本文实例,运行于 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.*

  • MySQL中用户授权以及删除授权的方法

    用户授权方法 你可以通过发出GRANT语句增加新用户: shell> mysql --user=root mysql mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH

  • Windows平台下MySQL常用操作与命令

    1.导出整个数据库 mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql 3.导

  • mysql查看用户授权信息的具体方法

    具体方法: 1.打开命令提示符 2.输入mysql -u root -p命令,然后回车 3.输入正确的密码,进入mysql命令行 4.查看用户授权信息 SHOW GRANTS FOR 'root'@'localhost'; 查看用户名为root,主机名为localhost的授权信息. 知识点扩展: MySQL 查看用户授予的权限 在MySQL中,如何查看一个用户被授予了那些权限呢? 授予用户的权限可能分全局层级权限.数据库层级权限.表层级别权限.列层级别权限.子程序层级权限.具体分类如下: 全局

  • MySQL基本运维命令详解

    目录 1. 导出test_db数据库 2. 导出一个表 3. 导出一个数据库结构 4. 导入数据库 5. mysql进入与退出 6. 数据库操作 7. 数据表操作 1. 导出test_db数据库 命令:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u root -p test_db > test_db.sql # 导出所有数据库 mysqldump -u root -p –all-databases > mysql_all.sql 2. 导出一

  • mysql导入sql文件命令和mysql远程登陆使用详解

    在MySQL Qurey   Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: 复制代码 代码如下: mysql> source   d:/myprogram/database/db.sql; 另附mysql常用命令: 一) 连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL 首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:/mysql/bin,再

  • MySQL最基本的命令使用汇总

    一.连接MySQL(和PHP搭配之最佳组合) 格式: -h主机地址 -u用户名 -p用户密码 例1:连接到本机上的MySQL. 首先在打开DOS窗口,然后进入目录bin,再键入 -uroot -p,回车后提示你输密码,如果刚安装好,超级用户root是没有密码的,故直接回车即可进入到MySQL中了. 例2:连接到远程主机上的MySQL. 假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123.则键入以下命令: 复制代码 代码如下: -h110.110.110.

  • MYSQL 数据库导入导出命令

    MySQL命令行导出数据库 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin (或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u root -p news > news.sql   (输入后会让你输入进入MySQL的密码

  • MYSQL 修改root密码命令小结

    一.请问在win2K命令提示符下怎样更改mysql的root管理员密码? >mysql -u root -p Enter password: ****** mysql> use mysql; mysql> update user set password=password('new_password') where user='root'; 通过这种方法就可以直接修改密码了.至于在CMD下能否登陆MySQL,就要在Windows环境变量PATH中添加"C:\Program Fi

随机推荐