当前位置:  数据库>mysql

mysql命令行下用户管理方法分享

    来源: 互联网  发布时间:2014-10-04

    本文导语:  mysql安装后好,会有一个名字为mysql的数据库,存放用户的表是user,mysql数据库的用户管理就是围绕这个表展开的,当然还有一些表,例如:tables_priv,procs_priv,clumns_priv,information_schema数据库里面的USER_PRIVILEGES等。 如果有mysql...

mysql安装后好,会有一个名字为mysql的数据库,存放用户的表是user,mysql数据库的用户管理就是围绕这个表展开的,当然还有一些表,例如:tables_priv,procs_priv,clumns_priv,information_schema数据库里面的USER_PRIVILEGES等。

如果有mysql管理工具phpmyadmin的话,我们可以通过图形画界面来对用户进行管理,但是如果没有phpmyadmin这样的管理工具怎么办呢?这个时候,我们可以通过命令行执行sql语句来管理mysql的用户。

一,添加用户

1,create user

语法:

CREATE USER user_specification
[, user_specification] ...

user_specification:
user [IDENTIFIED BY [PASSWORD] 'password']
实例:
代码如下:

mysql> create user '44'@'127.0.0.1'; //创建一个44用户
Query OK, 0 rows affected (0.00 sec)

mysql> create user '33'@'localhost' identified by 'aaaa'; //创建一个33用户,密码为aaaa
Query OK, 0 rows affected (0.00 sec)

mysql> select * from mysql.user where user='33' or user='44'G; //查看一下mysql下的user

create user 虽然可以创建用户,但是它只是创建用户,并没有给用户分配置权限,所以一般被 grant命令所取代。

2,grant

语法:

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 ...]

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']

ssl_option:
SSL
| X509 #要求x509证书
| CIPHER 'cipher' #加密算法
| ISSUER 'issuer' #证书发行商
| SUBJECT 'subject' #主题

with_option:
GRANT OPTION
| MAX_QUERIES_PER_HOUR count #每小时最多执行多少条sql
| MAX_UPDATES_PER_HOUR count #每小时最多更新多少条数据
| MAX_CONNECTIONS_PER_HOUR count #每小时最大的联接数是多少
| MAX_USER_CONNECTIONS count #最大用户联接数
不要被上面的语法吓倒,其实理解什么意思,就很容易掌握。我是这样理解的。

grant 权限 on 应用范围(数据库表,方法等) to 用户(用@隔开,前面是用户名后面是主机名'用户名'@'主机名') identified by 密码 require 要求什么的 with 对用户的进行的执行sql的条数控制。

个人觉得,只要记得上面几个红色的关键词,基本上这个命令就掌握了。
Privilege Meaning ALL [PRIVILEGES] 所有权限 ALTER 可以使用alter table ALTER ROUTINE 可以使用alter routine CREATE 可以创建数据库和表 CREATE ROUTINE 可以使用create routine CREATE TEMPORARY TABLES 可以使用临时表 CREATE USER 可以对用户进添加,删除,重命名,撤销权限 CREATE VIEW 可以创建和修改视图 DELETE 可以删除数据 DROP 可能删除数据库,表,视图等 EVENT 可以使用事件高度器 EXECUTE 可以执行routine FILE 可以在服务器读写文件 GRANT OPTION 用户有权对自己添加的用衣授权 INDEX 可以创建,删除索引 INSERT 可以插入 LOCK TABLES 可以锁定表 PROCESS 可以使用SHOW PROCESSLIST来查看mysql当前用户的执行sql情况 REFERENCES Not implemented RELOAD 可以使用刷新功能 REPLICATION CLIENT 用户可以进行主从同步 REPLICATION SLAVE 主从同步时,从服务器可以从主服务器读取binary log SELECT 可以查找 SHOW DATABASES 可以使用show databases来查看所有数据库 SHOW VIEW 可以使用show view来查看视图 SHUTDOWN 可以使用mysqladmin中的参数shutdown SUPER Enable use of other adminstrative operations such as CHANGE MASTER TO, KILL, PURGE BINARY LOGS, SET GLOBAL, and mysqladmin debug command TRIGGER 可以使用触发器 UPDATE 可以进行理会新操作 USAGE 无特权
实例:
代码如下:

grant all ON test.* TO 'test'@'localhost'; //test用户拥有test数据库下的所有操作
grant select,update on test.user to 'test'@'localhost'; //test用户可以对test数据库下user表,进行查找和更新操作
//test用户的的密码是111111,对user表中的name字段有读取权限,对id,name有更新权限
grant select(name),update(id,name) on test.user to 'test'@'localhost' identified by '111111';
//test用户对所有数据库拥有所有权力,并且要求ssl加密
grant all privileges on *.* to 'test'@'%' identified by '123456' require ssl

当添加完用户后,别忘 了 flush privileges;

二,删除用户

语法:

DROP USER user [, user] ...
实例:
代码如下:

drop user 'test2'@'localhost'; //当用drop删除用户进,tables_priv,procs_priv等表中的数据也会被删除

在这里为什么要用'test2'@'localhost'当用户名,而不是直接test2呢,因为mysql.user这张表,是根用户名和host名决定一个用户,你可查看一下表结构就知道了。

show create table mysql.userG;你会发现有这个东西PRIMARY KEY (`Host`,`User`),表示联合主键

三,修改用户

语法:

RENAME USER old_user TO new_user
[, old_user TO new_user] ...
实例:
代码如下:

rename user 'test2'@'localhost' to 'test'@'%';

四,修改权限

语法:

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] ...
grant就给用户分配权限,revoke是把权限从用户的身上拿走。

实例:
代码如下:

mysql> revoke update on *.* from 'tank'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> select mysql.user.update_priv from mysql.user where user='tank' and host='localhost';
+-------------+
| update_priv |
+-------------+

+-------------+
1 row in set (0.00 sec)

去掉tank@localhost这个用户的更新功能,这个是去掉一个权限,如果我要全部去掉怎么办呢,一个一个写太麻烦了,看下面的一个例子
代码如下:

mysql> revoke all privileges ,grant option from '33'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

用掉33@localhost这个用户的所有权限

作者:海底苍鹰

    
 
 

您可能感兴趣的文章:

  • Mysql服务器登陆,启动,停止等基本操作命令介绍(Linux/Centos环境)
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • mysql 命令大全及导入导出表结构或数据
  • php连接不上mysql但mysql命令行操作正常的解决方法
  • 装了两个mysql,如何设置登录命令。
  • 如何用命令行进入mysql具体操作步骤
  • 命令行下怎样操作MySQL
  • mysql在linux redhate 4 下,命令行模式下服务不能自动运行
  • mysql 编码设置命令
  • linux下如何重起mysql呀,急,在线等,命令是什么呀?
  • 命令行输入mysql -uroot ,提示:command not found
  • DOS命令行窗口mysql中文显示乱码问题解决方法
  • mysql常用命令大全 mysql常用命令总结
  • Fedora环境下装MySQL命令方法介绍
  • MYSQL 修改root密码命令小结
  • 关于MYSQL 远程登录的授权方法 命令
  • MySql是不是只能用命令行才能建数据表?
  • MySQL防止delete命令删除数据的两种方法
  • 请问linux下重启mysql的命令?
  • 一句命令完成MySQL的数据迁移(轻量级数据)
  • Mysql命令行导入sql数据
  • mysql中字符串和时间互相转换的方法(自动转换及DATE_FORMAT函数)
  • mysql修改用户密码的方法和mysql忘记密码的解决方法
  • linux mysql登陆出错 mysql升级方法
  • MySql报错Table mysql.plugin doesn’t exist的解决方法
  • mysql启动错误之mysql启动报1067错误解决方法
  • MySQL降权运行之MySQL以Guests帐户启动设置方法
  • sqlserver iis7站长之家
  • mysql解决远程不能访问的二种方法
  • 强制修改mysql的root密码的六种方法分享(mysql忘记密码)
  • 修改mysql密码与忘记mysql密码的处理方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎样让我的程序能像mysql一样运行后有一个mysql>的提示符等待用户输入并解析用户输入的数据然后执行操作?
  • LAMP环境下,通过非root用户,可以获取mysql的用户名和密码吗?
  • linux 下mysql 以root和普通用户进入mysql的问题
  • MySQL的用户问题,菜鸟提问
  • Mysql用户变量传递问题
  • MYSQL基础之连接MYSQL、修改密码、添加用户
  • 允许远程用户访问mysql服务sql语句
  • mysql里面我怎么管理用户的访问权限呢?
  • 我用kylix上的sql connection连接同一网段的linux上的MYSQL,但总是提示用户及密码不下确,但实际上用户及密码肯定是正确的呀?
  • mysql root用户的密码修改和消除
  • mysql增加新用户无法登陆解决方法
  • RedHat linux9.0自带Mysql数据库的用户名和密码是什么?
  • mysql数据库添加用户及分配权限具体实现
  • Windows中MySQL root用户忘记密码解决方案
  • VPS下修改MySQL root用户密码的方法
  • 如何开一个10M的MYSQL数据库给用户?
  • 在WIN命令提示符下mysql 用户新建、授权、删除,密码修改
  • linux 下 如果没有根用户权限是不是就装不了 mysql ??
  • Linux上无法使用root、mysql等系统预定义的用户以ftp连结
  • MYSQL删除匿名用户的方法(提高安全性)
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • MySQL 重装MySQL后, mysql服务无法启动
  • Mysql查询错误:ERROR:no query specified原因
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • php安装完成后如何添加mysql扩展
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 在Linux内安装了Mysql,无法进入Mysql.
  • MySQL Workbench的下载安装与使用教程


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3