博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二百七十六节,MySQL数据库,【显示、创建、选定、删除数据库】,【用户管理、对用户增删改查以及授权】...
阅读量:4883 次
发布时间:2019-06-11

本文共 4463 字,大约阅读时间需要 14 分钟。

MySQL数据库,【显示、创建、选定、删除数据库】,【用户管理、对用户增删改查以及授权】

 

1、显示数据库

SHOW DATABASES;显示数据库

SHOW DATABASES;

mysql - 用户权限相关数据

sys - 数据库的相关配置存放的表
information_schema MySQL本身架构相关数据
performance_schema主要用于收集数据库服务器性能参数

 

 

2、创建数据库

CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 创建一个utf-8编码数据库

CREATE DATABASE jxiou DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

CREATE DATABASE 数据库名称 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; 创建一个gbk编码数据库

CREATE DATABASE jxioujjj DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

 

 

3、使用数据库

USE 数据库名称; 选定一个指定的数据库

USE jxiou

SHOW TABLES;显示当前使用的数据库中所有表

SHOW TABLES;

 

 

4、删除数据库

drop database 数据库名称;  删除一个指定的数据库

drop database jxioujjj;

 

 

5、用户管理

注意:默认的root用户是超级管理员

创建用户

  create user '用户名'@'IP地址' identified by '密码';  创建一个用户

create user 'xyhu'@'127.0.0.1' identified by '279819';

 

查看MYSQL数据库中所有用户

  SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

 

删除用户

  drop user '用户名'@'IP地址';

drop user 'xyhu'@'127.0.0.1';

 

修改用户名

  rename user '用户名'@'IP地址' to '新用户名'@'IP地址';

rename user 'xyhu'@'127.0.0.1' to 'xyhuuu'@'127.0.0.1';

 

修改密码

  set password for '用户名'@'IP地址' = Password('新密码');

set password for 'root'@'localhost' = Password('279819');

 

 

 

6、授权管理

PS:用户权限相关数据保存在mysql数据库的user表中,所以也可以直接对其进行操作(不建议)

查看用户权限

  show grants for '用户'@'IP地址';  查看一个指定用户权限

show grants for 'root'@'localhost';

 

查看用户授权数据表结构

  select * from mysql.user where user='用户名' \G;  查看用户授权数据表结构

//注:\G为按列显示数据select * from mysql.user where user='root' \G;

 

权限表说明

 
all privileges  除grant外的所有权限,除授权外的所有权限
Select_priv:用户可以通过SELECT命令选择数据。允许查看Insert_priv:用户可以通过INSERT命令插入数据;允许查看和写入数据Update_priv:用户可以通过UPDATE命令修改现有数据;Delete_priv:用户可以通过DELETE命令删除现有数据;Create_priv:用户可以创建新的数据库和表;Drop_priv:用户可以删除现有数据库和表;Reload_priv:用户可以执行刷新和重新加载MySQL所用各种内部缓存的特定命令,包括日志、权限、主机、查询和表;重新加载权限表;Shutdown_priv:用户可以关闭MySQL服务器;在将此权限提供给root账户之外的任何用户时,都应当非常谨慎;Process_priv:用户可以通过SHOW PROCESSLIST命令查看其他用户的进程;服务器管理;File_priv:用户可以执行SELECT INTO OUTFILE和LOAD DATA INFILE命令;加载服务器上的文件;Grant_priv:用户可以将已经授予给该用户自己的权限再授予其他用户(任何用户赋予全部已有权限);References_priv;目前只是某些未来功能的占位符;现在没有作用;Index_priv:用户可以创建和删除表索引;用索引查询表;Alter_priv:用户可以重命名和修改表结构;Show_db_priv:用户可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库;可以考虑对所有用户禁用这个权限,除非有特别不可抗拒的原因;Super_priv:用户可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SET GLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令;超级权限;Create_tmp_table_priv:用户可以创建临时表;Lock_tables_priv:用户可以使用LOCK TABLES命令阻止对表的访问/修改;Execute_priv:用户可以执行存储过程;此权限只在MySQL 5.0及更高版本中有意义;Repl_slave_priv:用户可以读取用于维护复制数据库环境的二进制日志文件;此用户位于主系统中,有利于主机和客户机之间的通信;主服务器管理;Repl_client_priv:用户可以确定复制从服务器和主服务器的位置;从服务器管理;Create_view_priv:用户可以创建视图;此权限只在MySQL 5.0及更高版本中有意义;Show_view_priv:用户可以查看视图或了解视图如何执行;此权限只在MySQL 5.0及更高版本中有意义;Create_routine_priv:用户可以更改或放弃存储过程和函数;此权限是在MySQL 5.0中引入的;Alter_routine_priv:用户可以修改或删除存储函数及函数;此权限是在MySQL 5.0中引入的;Create_user_priv:用户可以执行CREATE USER命令,这个命令用于创建新的MySQL账户;Event_priv:用户能否创建、修改和删除事件;这个权限是MySQL 5.1.6新增的;Trigger_priv:用户能否创建和删除触发器,这个权限是MySQL 5.1.6新增的;Create_tablespace_priv:创建表空间ssl_type:支持ssl标准加密安全字段ssl_cipher:支持ssl标准加密安全字段x509_issuer:支持x509标准字段x509_subject:支持x509标准字段max_questions:0 每小时允许执行多少次查询max_updates:0 每小时可以执行多少次更新  :0表示无限制max_connections:0 每小时可以建立的多少次连接:0表示无限制max_user_connections:0 单用户可以同时具有的连接数:0表示无限制plugin:5.5.7开始,mysql引入plugins以进行用户连接时的密码验证,plugin创建外部/代理用户 authentication_string:通过authentication_string可以控制两者的映射关系,(PAM plugin等,PAM可以支持多个服务名)尤其是在使用代理用户时,并须声明这一点password_expired:密码过期 Y,说明该用户密码已过期 N相反

 

 

给用户授权

  grant  权限(对照上面权限表) on 数据库(要授权的数据库名称).表(数据库里的那张表) to   '用户'@'IP地址';

对于目标数据库授权            数据库名.*           数据库中的所有            数据库名.表          指定数据库中的某张表            数据库名.存储过程     指定数据库中的存储过程            *.*                所有数据库对于用户IP授权          用户名@IP地址         用户只能在改IP下才能访问            用户名@192.168.1.%   用户只能在改IP段下才能访问(通配符%表示任意)            用户名@%             用户可以再任意IP下访问(默认IP地址为%)列如:grant all privileges on db1.tb1 TO '用户名'@'IP'grant select on db1.* TO '用户名'@'IP'grant select,insert on *.* TO '用户名'@'IP'

 

grant all privileges on *.* to 'xyhuuu'@'127.0.0.1';

 

 

给用户取消权限

  revoke 权限(对照上面权限表) on 数据库(要授权的数据库名称).表(数据库里的那张表) from '用户'@'IP地址';

对于目标数据库授权            数据库名.*           数据库中的所有            数据库名.表          指定数据库中的某张表            数据库名.存储过程     指定数据库中的存储过程            *.*                所有数据库对于用户IP授权          用户名@IP地址         用户只能在改IP下才能访问            用户名@192.168.1.%   用户只能在改IP段下才能访问(通配符%表示任意)            用户名@%             用户可以再任意IP下访问(默认IP地址为%)

 

revoke all privileges on *.* from 'xyhuuu'@'127.0.0.1';

 

 

 

 

  

 

转载于:https://www.cnblogs.com/adc8868/p/6920020.html

你可能感兴趣的文章
Python中的数据类型
查看>>
讲给普通人听的分布式数据存储【转载】
查看>>
关于最短路
查看>>
Hbase记录-zookeeper部署
查看>>
Python pexpect出现错误‘module have no attribute "spawn" 解决办法
查看>>
vs2008 C# 怎么调试C++ dll[转]
查看>>
PHP的魔术方法
查看>>
警惕麦咖啡的"缓冲区溢出保护"引起的ASP.NET 中 System.OutOfMemoryException 的错误...
查看>>
optimizer_dynamic_sampling
查看>>
HTML(WEB)开发day05
查看>>
序列合并求前K小项 POJ2442
查看>>
unity点选构建Mesh并保存OBJ
查看>>
python kmeans实战 - 单机一层聚类(小玩具哦),下次再弄个分布式多次聚类
查看>>
Java主要有那几种文件类型?各自的作用是什么?
查看>>
我的第一个python web开发框架(29)——定制ORM(五)
查看>>
2017.11.18 手把手教你学51单片机-点亮LED
查看>>
xml的创建与解析
查看>>
grep不区分大小写查找字符串方法
查看>>
linux系统灵活运用灯[android课程3]
查看>>
Android 通用Dialog中设置RecyclerView
查看>>