1、管理脚本
(1)数据库管理
-- 查看mysql数据库中的所有数据库
show databases; -- 如果是命令行,可以使用该命令查看数据库清单
-- 创建新的数据库
create database dbname;
-- 删除数据库
drop database dbname;
(2)用户管理
-- 查看mysql数据库中的所有用户
select user, host from mysql.user;
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
-- 查看当前用户
select user();
-- 创建/删除用户
-- 语法:create user '用户名'@'网段' identified by '该用户的密码';
create user 'xlevon'@'%' identified by '123456'; -- 创建
drop user 'xlevon'@'%'; -- 删除
-- 修改默认自动过期时间
show global variables like 'default_password_lifetime';
SET GLOBAL default_password_lifetime = 0;
-- 设置用户密码过期
ALTER USER 'oauser'@'%' PASSWORD EXPIRE;
-- 设置用户密码永不过期
ALTER USER 'oauser'@'%' PASSWORD EXPIRE NEVER;
-- 通过账号锁定来禁用账号
ALTER USER 'oauser'@'%' ACCOUNT LOCK; -- 锁定
ALTER USER 'oauser'@'%' ACCOUNT UNLOCK; -- 解锁
-- 用户重命名&修改密码
use mysql;
update user set user ='oauser' where user ='xlevon'; --用户改名
flush privileges; -- 即时刷新设置
alter user 'oauser'@'%' identified by '654321'; --修改密码
flush privileges;
-- 修改用户权限&修改密码
-- 语法:grant 权限 on 库名.表名 to '用户名'@'网段' identified by "该用户的密码";
grant select on xlevondb.* to 'oauser'@'%' identified by '112233'; -- 授权
flush privileges;
revoke select on xlevondb.* from 'oauser'@'%'; -- 取消授权
flush privileges;
-- 指定root只能特定IP访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'XXX.XXX.XXX.XXX' IDENTIFIED BY 'password' WITH GRANT OPTION;
-- 查看某个用户的权限
show grants for 'oauser'@'%';
-- 查看用户的授权权限:
select * from information_schema.user_privileges where GRANTEE = "'oauser'@'%'";
2、应用实例
业务系统间接开放数据视图给外部系统访问,外部系统对其授权范围内的对象只读。
-- 1、创建允许外部访问的数据库
create database testdb;
-- 2、创建数据视图
create or replace view testdb.test_view
AS
-- 此处sql可以访问其它 database,表名加上相应 database前缀即可
select 'Hello XLevon' as Field1;
select * from testdb.test_view;
-- 3、创建外部访问用的只读账号
create user 'xlevon'@'xxx.xxx.xxx.xxx' identified by '123456'; -- 限定特定IP或%
ALTER USER 'xlevon'@'xxx.xxx.xxx.xxx' PASSWORD EXPIRE NEVER;
GRANT select on testdb.* TO 'xlevon'@'%';
GRANT all on testdb.* TO 'xlevon'@'%';
FLUSH PRIVILEGES;
原创文章,转载请注明来源-X档案