从零开始学习MySQL--数据库管理--003

MySQL访问控制系统入门

MySQL访问控制由两部分构成

  • 连接时验证:使用有效的用户名和密码来进行登录操作
  • 执行时验证:每个需要执行的SQL语句, MySQL会检查登录的用户是否具有足够的权限来执行该语句

权限位置

mysql 数据库包含五个主要的授权表

  • user表:包含用户帐户和全局权限列。 我们登录所用的用户信息都保存在这。

  • db表:包含数据库级权限。

  • table_priv和columns_priv表:包含表级和列级权限。

  • procs_priv表:包含存储函数和存储过程的权限。

创建用户帐户

create user yourName identified by 'password';

create user yl@localhost identified by 'yl';--新建本地账户
create user yl@% identified by 'yl';--新建远程和本地通用账户
create user yl@192.168.0.110 identified by 'yl';--新建远程ip制定账户

--查看账户权限
show grants for yl@localhost;

---GRANT USAGE ON *.* TO 'yl'@'localhost' IDENTIFIED BY PASSWORD '*密文密码'

--*.* 显示 yl 用户帐户只能登录到数据库服务器, 没有其他权限
--两个星号的区别:前者表示数据库, 后者表示表

--刷新权限、在删除账户,新建账户并授权之后
flush privileges; 

授予权限

GRANT privilege,[privilege],.. ON privilege_level
TO user [IDENTIFIED BY password]
[REQUIRE tsl_option]
[WITH [GRANT_OPTION | resource_option]];
--授予所有权限
grant all on *.* to 'yl'@'localhost' with grant option;

show grants for yl@localhost;

--GRANT ALL PRIVILEGES ON *.* TO 'yl'@'localhost' IDENTIFIED BY PASSWORD '*密文密码' WITH GRANT OPTION

flush privileges; 

撤销权限

REVOKE privilege_type [(column_list)]
[, priv_type [(column_list)]]...
ON [object_type] privilege_level
FROM user [, user]...
revoke all privileges, grant option from yl;

删除一个或多个用户帐户

use mysql;
select user, host from mysql.user;

--删除用户,删除多个时用逗号(,)隔开
drop user 'yl@localhost';

--例外:如果删除时该用户已经连接到数据库,那么删除之后该用户仍可使用到会话结束,可以采取在删除之前先关闭用户的会话
show processlist;
kill id;--杀死id
drop user yl@localhost;

备份数据库

mysqldump -u [username] –p[password] [database_name] > [dump_file.sql]

[username] : 有效的MySQL用户名。
[password] : 用户的有效密码。 请注意, -p 和密码之间没有空格。
[database_name] : 要备份的数据库名称
[dump_file.sql] : 要生成的转储文件
--Mysql数据库备份指令格式:
mysqldump -h主机名  -P端口 -u用户名 -p密码 (database) 数据库名 > 文件名.sql

--1、备份MySQL数据库的命令
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

--2、备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -add-drop-table -uusername -ppassword databasename > d:\111.sql

--3、直接将MySQL数据库压缩备份
mysqldump -hhostname -uusername -ppassword databasename | gzip > d:\111.sql.gz

--4、备份MySQL数据库某个(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > d:\111.sql

--5、同时备份多个MySQL数据库
mysqldump -hhostname -uusername -ppassword –-databases databasename1 databasename2 databasename3 > d:\111.sql

--6、仅备份数据库结构
mysqldump -uroot -proot –-no-data-databases project3 project3 project4 > d:\111.sql

--7、备份服务器上所有数据库
mysqldump -uroot -proot –-all-databases > d:\111.sql

恢复数据库

数据库还原有三种方式:source命令、mysql、gunzip命令

source命令

进入mysql数据库控制台,登录
mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source  d:\test.sql

mysql

mysql -hhostname -uusername -ppassword test < d:\test.sql

gunzip命令

gunzip < d:\test.sql.gz | mysql -uusername -ppassword test

其他查看命令

--列出所有的数据库
show databases;

--模糊查询数据库(pro%:以pro开头;%pro:以pro结尾;%pro%:含有pro)
show databases like '%pro%';

--列出数据库下所有的表
show tables;

--列出数据库下所有的表和视图
show full tables;
create view selectAll as select * from employee;

--模糊查询表参考模糊查询数据库,二者一样

--查看表结构
describe employee;
desc employee;
show columns from employee;
show full columns from employee;
--模糊查询参看模糊查询数据库
show full columns from employee like '%pro%'

--列出所有用户
select user from mysql.user;

--显示当前登录用户
select user();
发布了3 篇原创文章 · 获赞 10 · 访问量 1204

猜你喜欢

转载自blog.csdn.net/ThrStones/article/details/104721467