在实施银行等项目时,为了符合安全要求,必须提供一个只有查询权限的用户进行日常运维操作,防止权限过高有误操作现象发生。
一、新增Oracle数据库查询权限用户
-- 1、用有dba权限的用户连接上数据库
本例通过DbVisualizer工具进行如下操作;
-- 2、创建用户vlog
create user vlog identified by “blog";
-- 3、赋予用户连接权限
grant connect to vlog ;
-- 4、赋予用户查询权限(对所有表)
grant select any table to vlog;
-- 5、赋予用户查询权限(指定表)
grant select on 模式名.表名 to vlog;
拓展技巧:
-- 1、通过动态生成授权语句,将用户 MMP 的序列权限赋予用户 MMC:
select
'grant select on ' || t.sequence_name || ' to 被授权的用户名(MMC); '
from sys.dba_sequences t where sequence_owner='MMP';
-- 2、通过动态生成授权语句,表授权:
select
'grant select,insert,delete,update on ' || t.name || ' to 被授权的用户名;'
from tab t where t.tabtype = 'TABLE';
二、新增MySQL数据库查询权限用户
-- 1、用有dba权限的用户连接上数据库
本例通过DbVisualizer工具进行如下操作;
-- 2、创建用户vlog
create user 'vlog'@'%' identified by 'vblog';
注:
1、如果上面命令执行失败,可尝试将第一个vlog前后的 ' 改为 `;
2、用户名@主机IP,表示能访问数据库的IP,‘%’ 表示所有IP能访问上数据库,否则无法远程访问。
-- 3、赋予用户vlog访问 mmc 库的权限
grant all privileges on `mmc`.* to 'vblog'@'%' with grant option;
-- 4、刷新权限
flush privileges;
-- 5、赋予用户查询权限
grant select on `库名`.* to 'vblog'@'%';
MySQL常用命令(转载):
1.查看用户查看MYSQL数据库中所有用户
mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
GRANT select ON *.* TO 'aaa'@'%';
2.删除用户
命令:DROP USER 'user_name'@'host'
例:
DROP USER 'aaa'@'%';
3.设置与更改用户密码
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是设置当前用户的密码:
SET PASSWORD = PASSWORD('newpassword');
4.撤销用户权限:
命令:REVOKE privileges ON database.tablename FROM 'username'@'host';
例如:REVOKE SELECT ON *.* FROM 'zje'@'%';
三、MySQL用户本地正常访问但远程无法访问(将本地用户更新为远程):
(转载:https://www.cnblogs.com/hyzhou/archive/2011/12/06/2278236.html):
方法一、本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改为"%"
1、登录数据库
#mysql -u root -proot
2、连接指定库
mysql>use mysql;
3、查询用户root将host变更为 '%'
mysql>update user set host = '%' where user = 'root';
4、验证更新结果
mysql>select host, user from user;
方法二、直接授权(推荐)
1、从任何主机上使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:
# mysql -u root -proot
2、授权
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
3、操作完后切记执行以下命令刷新权限
FLUSH PRIVILEGES;