MySQL访问控制系统入门
MySQL访问控制由两部分构成
连接时验证:使用有效的用户名和密码来进行登录操作
执行时验证:每个需要执行的SQL语句,MySQL会检查登录的用户是否具有偶足够的权限来执行该语句。
权限位置
mysql数据库包含5个主要的授权表
user表:包含用户账户和全局权限列。我们登录所用到的用户信息都保存在这儿。
d b 表:包含数据库级权限。
table_priv和columns_priv表:包含表级和列级权限
procs_priv表:包含存储函数和存储过程的权限
创建用户账户
CREATE USER ada IDENTIFIED BY ‘ada’;
CREATE USER aea@localhost IDENTIFIED BY ‘aea’;–新建本地账户
CREATE USER aea@% IDENTIFIED BY ‘aea’;–新建远程和本地账户
CREATE USER aea@192.168.0.110 IDENTIFIED BY ‘aea’;–新建远程ip制定账户
–查看账户权限
SHOW GRANTS FOR aea@localhost;
–GRANT USAGE ON . TO ‘aea’@‘localhost’ IDENTIFIED BY PASSWORD ‘aaa’
–. 显示 yl 用户帐户只能登录到数据库服务器, 没有其他权限
–两个星号的区别:前者表示数据库, 后者表示表
–刷新权限、在删除账户,新建账户并授权之后
FLUSH PRIVILEGES;
授予权限
RANT PRIVILEGES,[PRIVILEGES],… ON privilege_level
TO USER[IDENTIFIED BY aea]
[REQUIRE tsl_option]
[WITH[grant_option|resource_option]];
FLUSH PRIVILEGES;
授予所有权限
GRANT ALL ON . TO ‘aea’@‘localhost’ WITH GRANT OPTION;
SHOW GRANTS FOR aea@localhost;
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 aea;
删除一个或多个用户帐户
USE mysql;
SELECT USER HOST FROM mysql.user;
–删除用户,删除多个时用逗号(,)隔开;
DROP USER ‘aea@localhost’;
–例外:如果删除时该用户已经连接到数据库,那么删除之后该用户仍可使用到会话结束,可以采取在删除之前先关闭用户的会话
SHOW PROCESSLIST;
KILL ada;
DROP USER aea@localhost;
–mysqldump -u[username] -p[password] [database_name]>[dump_file.sql]
– username:有效的MySQL用户名 password:用户的有效密码。注意:-p和password之间没有空格
–database_name:要备份的数据库名称 dump_file:要生成的转储文件
mysqldump -u[root] -p[root] [rootS]>[dump_file.sql]
–mysql数据库备份指令格式
–mysqldump -h主机名 -p端口 -u用户名 -p密码 (-database) 数据库名 >文件名.sql
mysqldump -hlocalhost -p3306 -uroot -proot(-database) mysql>testA.sql
–1,备份mysql数据库的命令
mysqldump -hhostname -uusername -ppassword databasename > backful.sql
–2,备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
–mysqldump -add -drup -table -uusername -ppassword databasename > backupfile.sql
mysqldump -add -drup -table -uroot -proot databasename > d:\002.sql
–3,直接将MySQL数据库压缩备份
–mysqldump -hhosename -uusername -ppassword databasename | gzap > d:\002.sql.gz
mysqldump -hlocalhost -uroot -proot databasename | gzap > d:\002.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命令:
1:进入mysql数据库控制台,登录
2:mysql -u root -p
3:mysql>use 数据库
4:然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
5: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();