标签 权限 下的文章

MySQL视图查看及权限说明

查看视图是指查看数据库中,已经存在的视图的定义 必须要有SHOW VIEW的权限
查看视图有三种方式:
DESCRIBE语句
使用DESCRIBE语句,查看视图
MySQL中,使用DESCRIBE可以查看视图的字段信息,其中,包括字段名、字段类型等信息
语法格式:

DESCRIBE 视图名; 
或者
DESC 视图名;
root@sso_db_69 17:58:  [escdb]> desc oa_org;
+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| id          | varchar(36)  | NO   |     | NULL    |       |
| name        | varchar(255) | NO   |     | NULL    |       |
| fullName    | varchar(255) | YES  |     | NULL    |       |
| resource_id | varchar(255) | YES  |     | NULL    |       |
+-------------+--------------+------+-----+---------+-------+
4 rows in set (0.01 sec)





---阅读剩余部分---

Oracle查询所有DBA账号及其他账号

查询所有DBA账号

select * from dba_role_privs where granted_role='DBA';
或者
select * from (select distinct connect_by_root grantee username,granted_role from dba_role_privs connect by prior granted_role =grantee ) a where a.granted_role='DBA';

查看所有用户:

  select * from dba_users;
  select * from all_users;
  select * from user_users;

查看用户对象权限:

  select * from dba_tab_privs;
  select * from all_tab_privs;
  select * from user_tab_privs;

查看所有角色:

select * from dba_roles;

查看用户或角色所拥有的角色:

  select * from dba_role_privs;
  select * from user_role_privs;

查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)

SQL> select * from V$PWFILE_USERS;

USERNAME                       SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS                            TRUE  TRUE  FALSE

查看RESOURCE具有那些权限

SQL> SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE';
GRANTEE                        PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
RESOURCE                       CREATE TRIGGER                           NO
RESOURCE                       CREATE SEQUENCE                          NO
RESOURCE                       CREATE TYPE                              NO
RESOURCE                       CREATE PROCEDURE                         NO
RESOURCE                       CREATE CLUSTER                           NO
RESOURCE                       CREATE OPERATOR                          NO
RESOURCE                       CREATE INDEXTYPE                         NO
RESOURCE                       CREATE TABLE                             NO
 
已选择8行。

查看角色(DBA)被赋予的角色权限

select * from role_role_privs t where t.role = 'DBA';

查看角色(DBA)被赋予的对象权限

select * from role_tab_privs t1  where t1.role = 'DBA';

mysqldump导出报错-Got error: 1449错误解决办法

mysqldump -uroot -pPasswd DBName > /home/lsf/DB_Backup.sql

报错,显示:

Got error: 1449: The user specified as a definer ('xxx'@'') does not exist when using LOCK TABLES

或者直接报:

the user specified as a definer ('xxx'@'') does not exist

解决办法:

给xxx用户再添加一个对全部host都有可以访问的权限:

mysql -uroot -pPasswd
mysql >grant all privileges on *.* to xxx@"%" identified by "Passwd";
mysql >flush privileges;

MySQL中grant授权和撤销权限revoke的语法说明

MySQL的权限系统围绕着两个概念:
认证->确定用户是否允许连接数据库服务器
授权->确定用户是否拥有足够的权限执行查询请求等。
如果认证不成功的话,哪么授权肯定是无法进行的。
revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from”
GRANT和REVOKE管理的权限

ALL PRIVILEGES
影响除WITH GRANT OPTION之外的所有权限

ALTER
影响ALTER TABLE命令的使用

ALTER ROUTINE
影响创建存储例程的能力

CREATE
影响CREATE TABLE命令的使用

CREATE ROUTINE
影响更改和弃用存储例程的能力

CREATE TEMPORARY TABLES
影响CREATE TEMPORARY TABLE命令的使用

CREATE USER
影响创建、弃用;重命名和撤销用户权限的能力

CREATE VIEW
影响CREATE VIEW命令的使用

DELETE
影响DELETE命令的使用

DROP
影响DROP TABLE命令的使用

EXECUTE
影响用户运行存储过程的能力

EVENT
影响执行事件的能力(从MySQL5.1.6开始)

FILE
影响SELECT INTO OUTFILE和LOAD DATA INFILE的使用

GRANT OPTION
影响用户委派权限的能力

INDEX
影响CREATE INDEX和DROP INDEX命令的使用

INSERT
影响INSERT命令的使用

LOCK TABLES
影响LOCK TABLES命令的使用

PROCESS
影响SHOW PROCESSLIST命令的使用

REFERENCES
未来MySQL特性的占位符

RELOAD
影响FLUSH命令集的使用

REPLICATION CLIENT
影响用户查询从服务器和主服务器位置的能力

REPLICATION SLAVE
复制从服务器所需的权限

SELECT
影响SELECT命令的使用

SHOW DATABASES
影响SHOW DATABASES命令的使用

SHOW VIEW
影响SHOW CREATE VIEW命令的使用

SHUTDOWN
影响SHUTDOWN命令的使用

SUPER
影响管理员级命令的使用,如CHANGE、MASTER、KILL thread、mysqladmin debug、PURGE MASTER LOGS和SET GLOBAL

TRIGGER
影响执行触发器的能力(从MySQL5.1.6开始)

UPDATE
影响UPDATE命令的使用

USAGE
只连接,不授予权限

ORA-01031权限不足解决方法

在Oracle11gR2数据库上,以DBA权限的账号执行存储过程报错,PL/SQL:ORA-01031:权限不足,如下图
01031.png

原因:
1、ORACLE默认为定义者权限,定义者权限在存储过程中ROLE无效,需要显示授权。
2、如果使用AUTHID CURRENT_USER关键字使用调用者权限,则编译时ROLE无效,运行时有效。

解决办法:

方法1:对存储过程来说,CREATE TABLE想使用CREATE ANY TABLE权限,而CREATE ANY TABLE权限来自DBA角色,默认情况下,虽然在会话环境中可见,但在存储过程中不可见(无效)

所以根据上面的第一条规则,可以显示地将CREATE ANY TABLE权限授予DBA用户就可以了,即

GRANT update ANY TABLE TO xxxuser; #里面的权限根据具体存储过程更改

方法2:采用调用者权限,由于过程中使用动态SQL,所以可以避开编译时的检查,但在运行时DBA角色生效,即

CREATE OR REPLACE PROCEDURE INSERT_DATA --插入user_客户ID,套餐表,客户宽表
(RTN_ID OUT NUMBER, --返回错误ID
 RTN_STR OUT VARCHAR --返回错误叙述
 ) AUTHID CURRENT_USER IS

MySQL存储过程创建、查看、调用及参数、存储过程权限介绍

存储过程(Stored Procedure):
一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。

优点(为什么要用存储过程?):
  将重复性很高的一些操作,封装到一个存储过程中,简化了对这些SQL的调用
  批量处理:SQL+循环,减少流量,也就是“跑批”
  统一接口,确保数据的安全

相对于oracle数据库来说,MySQL的存储过程相对功能较弱,使用较少。
一、存储过程的创建和调用
  >存储过程就是具有名字的一段代码,用来完成一个特定的功能。
  >创建的存储过程保存在数据库的数据字典中。
创建存储过程

CREATE
    [DEFINER = { user | CURRENT_USER }]
 PROCEDURE sp_name ([proc_parameter[,...]])
    [characteristic ...] routine_body

proc_parameter:
    [ IN | OUT | INOUT ] param_name type

characteristic:
    COMMENT 'string'
  | LANGUAGE SQL
  | [NOT] DETERMINISTIC
  | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
  | SQL SECURITY { DEFINER | INVOKER }

routine_body:
  Valid SQL routine statement

[begin_label:] BEGIN
  [statement_list]
    ……
END [end_label]

存储过程权限相关:

CREATE ROUTINE : 创建存储过程的权限 
ALTER ROUTINE : 修改存储过程的权限 
EXECUTE :执行存储过程的权限
GRANT SELECT ON `mysql`.`proc` TO 'bis_enrolment_u'@'10.200.%' identified by 'xxxxx'; ; 普通账号没有查看存储过程或函数的权限,增加后可以看到系统有多少个函数或存储过程·









---阅读剩余部分---

MongoDB 3.x 添加用户及权限管理配置

MongoDB权限认证流程:

MongoDB没有默认管理员账号,所以要先添加管理员账号,再开启权限认证。
切换到admin数据库,添加的账号才是管理员账号
用户只能在用户所在数据库登录,包括管理员账号
管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。

添加管理员账号

[root@c160 ~]# mongo -host 127.0.0.1 -port 30000
MongoDB shell version v3.4.10
connecting to: mongodb://127.0.0.1:30000/
MongoDB server version: 3.4.10

> use admin                     #切换到admin数据库
switched to db admin

> db.system.users.find();      #用户表没有数据
> show users;

> db.createUser(               #创建管理员账号admin
    {
    user:"admin",
    pwd:"123456",
    roles:[{role:"userAdminAnyDatabase",db:"admin"}]
    }
    )

开启权限验证
修改配置文件加上auth=true参数,开启认证,需重启生效

> show dbs                  #显示所有数据库失败,还没认证  
2017-11-30T22:47:12.341+0800 E QUERY    [thread1] Error: listDatabases failed:{
        "ok" : 0,
        "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
        "code" : 13,
        "codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
shellHelper.show@src/mongo/shell/utils.js:781:19
shellHelper@src/mongo/shell/utils.js:671:15
@(shellhelp2):1:1
> use admin        //切换到admin数据库  
switched to db admin  
> db.auth('admin','123456');   //在admin数据库认证成功  
1  
> show dbs
admin  0.000GB
local  0.000GB

---阅读剩余部分---

Oracle 创建、查询视图view 权限不足的解决办法

在创建用户的时候如果直接给用户DBA权限,那么在B用户中可以直接查询A用户的表,但是在创建或查询视图时就会报无权限,在这种情况下需要再在被访问的A用户里面去给予要访问该表的B用户授权,查询的时候回提示权限不足,解决办法如下:

grant create view to B; --创建视图权限
grant select any table to B; --授予查询权限
grant select any dictionary to B; --授予数据字典权限

然后查询就可以了;

select into outfile权限设置

线上库新建账号以后给select权限,但是 select into outfile导出查询结果的时候直接报错:

select * from user into outfile '/tmp/user.csv';  
ERROR 1045 (28000): Access denied for user cha@'192.168.%' (using password: YES)

赋予file权限

(root@localhost) [mysql]>grant file on test.* to cha@'192.168.%';  
ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES  --提示该权限是global,必须使用*.* 方式
(root@localhost) [mysql]>grant file on *.* to cha@'192.168.%'; 
Query OK, 0 rows affected (0.00 sec) 

再次执行查询导出成功:

select * from user into outfile '/tmp/user.csv';  
Query OK, 300 rows affected (0.01 sec)  

Oracle11G用户、表空间、权限、角色、回收、管理及查看用户所有权限

一、登陆

sqlplus / as sysdba;//登陆sys帐户
sqlplus sys as sysdba;//同上
sqlplus scott/tiger;//登陆普通用户scott
sqlplus / as sysdba;//登陆sys帐户
sqlplus sys as sysdba;//同上
sqlplus scott/tiger;//登陆普通用户scott

二、管理用户

A、创建用户的Profile文件
CREATE PROFILE STUDENT LIMIT // student为资源文件名
FAILED_LOGIN_ATTEMPTS 3 //指定锁定用户的登录失败次数
PASSWORD_LOCK_TIME 5 //指定用户被锁定天数
PASSWORD_LIFE_TIME 30 //指定口令可用天数
PASSWORD_LOCK_TIME:用于指定帐户被锁定的天数.
PASSWORD_LIFE_TIME:用于指定口令有效期
PASSWORD_GRACE_TIME:用于指定口令宽限期.
PASSWORD_REUSE_TIME:用于指定口令可重用时间.
PASSWORD_REUSE_MAX;用于指定在重用口令之前口令需要改变的次数.
PASSWORD_VERIFY_FUNCTION;是否校验口令(校验将值改为VERIFY_FUNCTION)
CPU_PER_SESSION:用于指定每个会话可以占用的最大CPU时间.
LOGICAL_READS_PER_SESSON:用于指定会话的最大逻辑读取次数.
PRIVATE_SGA:用于指定会话在共享池中可以分配的最大总计私有空间.需要注意,该选项只使用与共享服务器模式.
COMPOSITE_LIMIT:用于指定会话的总计资源消耗(单位:服务单元).
CPU_PER_CALL:限制每次调用(解析,执行或提取数据)可占用的最大CPU时间(单位:百分之一秒)
LOGICAL_READS_PER_CALL:用于限制每次调用的最大逻辑I/O次数.
SESSIONS_PER_USER:用于指定每个用户的最大并发会话个数.
CONNECT_TIME:用于指定会话的最大连接时间.
IDLE_TIME:用于指定会话的最大空闲时间.

查看一个用户的所有系统权限(包含角色的系统权限)

select privilege from dba_sys_privs where grantee='DATAUSER'  
union  
select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='DATAUSER' );  
























---阅读剩余部分---

CentOS6.x下编译安装vsftpd-3.0.3

好几年不用ftp了,本来想着yum安装下完事,发现版本太低了,2.x,官方已经3.0.3了,故编译安装。记录安装步骤如下:
最好关闭掉selinux。
一、安装基础依赖包下载源码包:

yum install gcc gcc-c++ db4-utils pam-devel libcap libcap-devel -y 
wget https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gz

官网地址在这里https://security.appspot.com/vsftpd.html

二、编译安装:

tar xvf vsftpd-3.0.3.tar.gz
cd vsftpd-3.0.3
make
make install

即可安装完成,使用vsftpd -v查看版本号 vsftpd: version 3.0.3

三、配置
把身份认证模块拷贝至系统目录中




---阅读剩余部分---

Linux多用户访问共享文件夹

  实现场景某个文件夹,多用户都可以编辑\删除更新等,及实现文件夹共享功能,实现步骤如下:

groupadd ceshi
useradd t1 --groups ceshi
useradd t2 --groups ceshi 

mkdir /data/testfile
chmod -R 770 /data/testfile
chown t1 /data/testfile/
chgrp ceshi /data/testfile/

setfacl -d --set g:ceshi:rwx /data/testfile/
setfacl -R -m g:ceshi:rwx /data/testfile/
chmod g+w /data/testfile/

t1和t2即可对/data/testfile/目录下的任何文件、文件夹有操作权限,t1和t2都属于ceshi用户组,其他用户要加进来,只要用户组属于ceshi组即可。

MongoDB用户角色权限认证说明

MongoDB用户权限设置逻辑:先初始化一个超级管理员,然后让这个超管用户,创建普通用户和角色,并给用户分配角色,同时也有一些内建的角色可以使用。

  1. MongoDB是没有默认管理员账号,所以要先添加管理员账号,再开启权限认证。
  2. 切换到admin数据库,添加的账号才是管理员账号,添加普通用户,需先打开对应的库在添加,否则就添加到admin里面去了;
  3. 用户只能在用户所在数据库登录,包括管理员账号。

---阅读剩余部分---

MySQL报错“noAccessToProcedureBodies=true”解决方法

  MySQL执行存储过程的时候,报错“ User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted, configure connection with "noAccessToProcedureBodies=true" to have driver generate parameters that represent INOUT strings irregardless of actual parameter types.”

---阅读剩余部分---

最新

分类

归档

评论

  • Liang: 贴下编译参数和步骤,...
  • shao3911: 您好,为什么我在编译...
  • aliang: 先看是yum安装还是...
  • aliang: 将原来的nginx安...
  • yen: 3、如果要回滚的话,...
  • yen: 刚好需要升级ngin...
  • 文雨: 一些新的method...
  • aliang: 默认不屏蔽估计开发团...
  • 山野愚人居: PHP既然允许直接使...
  • aliang: 最下面有github地址·

其它