MySQL创建用户与授权方法_Mysql

来源:脚本之家  责任编辑:小易  

慢慢看吧mysql中可以给你一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,用法格式为: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 statusgrant alter routine on testdb.*to developer@’192.168.0.%’;now,you can drop a proceduregrant 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 optiongrant select on testdb.*to dba@localhost with grant option;这个特性一般用不到。实际中,数据库权限最好由 dba 来统一管理。注意:修改完权限以后 一定要刷新服务,或者重启服务www.zgxue.com防采集请勿采集本网。

注:我的运行环境是widnows xp professional + MySQL5.0

一, 创建用户:

mysql中可以给你一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令

命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';

root用户是系统默认的超级管理员,权限是最高的,当然可以管理任何用户建立的数据库了。你新建的ppamdin可以取得管理权限,但不是最高的权限,它只能管理被root授权管理的数据库以及执行root授权

说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';说明:username-你将创建的用户名,host- 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意

例子: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';

允许外网 IP 访问 [plain]view plain copy 在CODE上查看代码片派生到我的代码片 create user 'test'@'%' identified by '123456';刷新授权 [sql]view plain copy 在CODE上查看代码片派生到我的

CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';

在mysql的客户端工具或者mysql的数据库管理工具中创建用户并授权。eclipse中可以安装数据库插件,执行msyql的创建用户的sql语句。

CREATE USER 'pig'@'%' IDENTIFIED BY '123456';

CREATE USER 'pig'@'%' IDENTIFIED BY '';

CREATE USER 'pig'@'%';

二,授权:

命令:GRANT privileges ON databasename.tablename TO 'username'@'host'

说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

例子: GRANT SELECT, INSERT ON test.user TO 'pig'@'%';

GRANT ALL ON *.* TO 'pig'@'%';

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

三.设置与更改用户密码

命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword");

例子: SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");

四.撤销用户权限

命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';

说明: privilege, databasename, tablename - 同授权部分.

例子: REVOKE SELECT ON *.* FROM 'pig'@'%';

注意: 假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%', 则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select 权限.

具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看.

五.删除用户

命令: DROP USER 'username'@'host';

附表:在MySQL中的操作权限

ALTERAllows use of ALTER TABLE.
ALTER ROUTINEAlters or drops stored routines.
CREATEAllows use of CREATE TABLE.
CREATE ROUTINECreates stored routines.
CREATE TEMPORARY TABLEAllows use of CREATE TEMPORARY TABLE.
CREATE USERAllows use of CREATE USER, DROP USER, RENAME USER, and REVOKE ALL PRIVILEGES.
CREATE VIEWAllows use of CREATE VIEW.
DELETEAllows use of DELETE.
DROPAllows use of DROP TABLE.
EXECUTEAllows the user to run stored routines.
FILEAllows use of SELECT... INTO OUTFILE and LOAD DATA INFILE.
INDEXAllows use of CREATE INDEX and DROP INDEX.
INSERTAllows use of INSERT.
LOCK TABLESAllows use of LOCK TABLES on tables for which the user also has SELECT privileges.
PROCESSAllows use of SHOW FULL PROCESSLIST.
RELOADAllows use of FLUSH.
REPLICATIONAllows the user to ask where slave or master
CLIENTservers are.
REPLICATION SLAVENeeded for replication slaves.
SELECTAllows use of SELECT.
SHOW DATABASESAllows use of SHOW DATABASES.
SHOW VIEWAllows use of SHOW CREATE VIEW.
SHUTDOWNAllows use of mysqladmin shutdown.
SUPERAllows use of CHANGE MASTER, KILL, PURGE MASTER LOGS, and SET GLOBAL SQL statements. Allows mysqladmin debug command. Allows one extra connection to be made if maximum connections are reached.
UPDATEAllows use of UPDATE.
USAGEAllows connection without any specific privileges.

一般在为MySql创建用户时建议使用GRANT前台命令,当然如果对我们开发者而言,方法还有很多种,比如使用INSERT命令,甚至是直接修改mysql user数据表,但仍然建议按照MySQL规范去授权账户。因为它太容易忘记,特别整理方便参考。1、登录MySQL输入mysql-u root和密码即可登录到Mysql。2、选择数据库语句如下:use mysql;3、在mysql的user表中增加连接用户GRANT USAGE ON*.*TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;其中:“username”替换为将要授权的用户名,比如clientusr;“password”替换为clientusr设置的密码;4、可访问数据表授权创建好帐户之后,就开始给上面的common user进行数据表授权,步骤3中增加的连接用户默认权限都是“N”的,必须在db表中为该帐户授权,允许其访问专用数据库,当然超级用户就不说了。使用下面语句:GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON dbx.*TO 'username'@'localhost' IDENTIFIED BY 'password';本语句中的权限根据实际需要确定:dbx"替换为授权访问的数据库名,如果只给某张表授权:dbx.tablenameusername"是步骤2授权用户名password"是步骤2授权用户的设置密码这样就为该用户授予了对某数据表的SELECT,INSERT,UPDATE,DELETE,CAREATE,DROP权限。5、生效授权,创建完毕FLUSH PRIVILEGES;备注:1、不要直接使用INSERT语句添加user记录,使用INSERT可能出现:ERROR 1364(HY000):Field 'ssl_cipher' doesn't have a default value错误。不过早期的MYSQL版本笔者倒没出现这个错误,因为天缘一直都是直接修改user表或直接使用INSERT语句完成,后来升级MYSQL到5.1的时候,发现可能会出现这个错误。2、上文3和4,也可使用一句话GRANT ALL ON tbx.*TO 'username' IDENTIFIED BY 'password',这句话会自动创建username并为之授权。更多授权权限可参考MYSQL官方网站内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 通过shell脚本批量创建服务器上的mysql数据库账号
  • mysql创建数据库,添加用户,用户授权实操方法
  • mysql创建本地用户及赋予数据库权限的方法示例
  • linux下mysql创建新的用户的方法
  • mysql5.7创建用户授权删除用户撤销授权
  • mysql创建新用户、增加账户的2种方法及使用实例
  • mysql创建用户与授权及撤销用户权限方法
  • mysql 数据库导入导出命令
  • mysql导入导出数据中文乱码解决方法小结
  • mysql 文本文件的导入导出数据的方法
  • mysql数据库导出与导入及常见错误解决
  • mysql数据库创建账号、授权、数据导出、导入操作示例
  • 配置mysql主从服务实现实例
  • mysql跨库事务xa操作示例
  • mysql5.7.13 环境搭建教程(解压缩版)
  • mysql5.6安装步骤图文详解
  • windows系统mysql5.7.18安装图文教程
  • mysql如何处理varchar与nvarchar类型中的特殊字符
  • 在mysql字段中使用逗号分隔符的方法分享
  • mysql数据库详解(基于ubuntu 14.0.4 lts 64位)
  • 如何用命令行进入mysql具体操作步骤
  • mysql中用通用查询日志找出查询次数最多的语句的教程
  • 如何给MySql创建连接用户并授权
  • MySQL如何授权一个自己的创建的用户比如daitest创建新数据库的权利?求命令
  • mysql怎么创建新用户并授权
  • 如何创建新用户和授予MySQL中的权限
  • 如何在MySQL中创建用户以及授权
  • mysql中,我想用一个新用户直接创建数据库不行吗?一定要用root用户创建数据库再授权这种方法吗?
  • 如何通过命令行创建和设置一个MySQL用户
  • 如何让mysql新建的用户只对自己创建的数据库拥有权限
  • 怎么用Eclipse给mysql数据库创建用户并授权?
  • 网站上的管理用户,普通用户这些都是用MYSQL来创建并授权的吗?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页mysql通过shell脚本批量创建服务器上的mysql数据库账号mysql创建数据库,添加用户,用户授权实操方法mysql创建本地用户及赋予数据库权限的方法示例linux下mysql创建新的用户的方法mysql5.7创建用户授权删除用户撤销授权mysql创建新用户、增加账户的2种方法及使用实例mysql创建用户与授权及撤销用户权限方法mysql 数据库导入导出命令mysql导入导出数据中文乱码解决方法小结mysql 文本文件的导入导出数据的方法mysql数据库导出与导入及常见错误解决mysql数据库创建账号、授权、数据导出、导入操作示例配置mysql主从服务实现实例mysql跨库事务xa操作示例mysql5.7.13 环境搭建教程(解压缩版)mysql5.6安装步骤图文详解windows系统mysql5.7.18安装图文教程mysql如何处理varchar与nvarchar类型中的特殊字符在mysql字段中使用逗号分隔符的方法分享mysql数据库详解(基于ubuntu 14.0.4 lts 64位)如何用命令行进入mysql具体操作步骤mysql中用通用查询日志找出查询次数最多的语句的教程mysql安装图解 mysql图文安装教程windows下mysql5.6版本安装及配置can""t connect to mysql servermysql字符串截取函数substring的mysql创建用户与授权方法mysql提示:the server quit withmysql日期数据类型、时间类型使用mysql——修改root密码的4种方法mysql update语句的用法详解mysql 的case when 语句使用说明mysql中insert into xxx on duplicate kemysql查询中limit的大offset导致性能低下mysql中分页优化的实例详解mysql 数据库跨操作系统的最快迁移方法mysql安装时解决要输入current root passmysql中find_in_set()和in区别简析mysql获取某个字段存在于哪个表的sql语句使用navicate连接阿里云服务器上的mysqlwin7下mysql6.x出现中文乱码的完美解决方sqlserver 2005 自动备份数据库的方法分享
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved