Oracle数据库对user的相关访问控制实操

数据库 Oracle
我们今天主要介绍的是Oracle数据库对user的相关访问控制的实际操作,以下就是文章的具体内容介绍,希望会给你带来一些帮助在此方面。

以下的文章主要是讲述Oracle数据库对user的相关访问控制的实际操作,以下文章介绍的是在introduction to Oracle 9i SQL student guide的第二卷中看见的,写完才发现之前有过相关、甚至更全面的介绍了。但还是发布吧。

 

1、控制user的访问

 

主要有以下几方面:

 

控制database的访问

 

控制database中特定的对象的访问

 

授予一定的访问Oracle 数据字典的权限

 

为database对象创建synonym

 

database的安全性可以被定义为两类:系统的安全和data的安全。前者包括在system 级别的database的访问与使用,如username和password、给user分配的磁盘空间以及user可执行的系统操作。后者包括对database对象的访问及操作的安全控制。

 

1)系统权限

 

主要有:CREATE USER, DROP USER, DROP ANY TABLE, BACKUP ANY TABLE, SELECT ANY TABLE, CREATE ANY TABLE

 

2)创建users

 

CREATE USER user IDENTIFIED BY password;

 

3)授予权限

 

GRANT privilege [, privilege ...] TO user [, user| role, PUBLIC ...];

 

对于应用开发者,一般至少会需要下面的权限:

 

CREATE SESSION, CREATE TABLE, CREATE SEQUENCE, CREATE VIEW, CREATE PROCEDURE

 

4)修改user的密码

 

ALTER USER user IDENTIFIED BY nowpassword;

 

5)对象权限

 

 

GRANT object_priv|ALL [(columns)] ON object TO {user | role | PUBLIC} [WITH GRANT OPTION];

 

其中,ALL表示所有对象权限

 

2、role

 

1)role是一组相关权限的集合,可以被一起授予user,从而简化授权和收回权限的操作。一个user可以被授予多个roles,一个role也可以被授予给多个user。

 

CREATE ROLE role;

 

随后,可以用grant语句给role授权。PUBLIC表示将对象权限授予所有users。

 

2)给role授予相应权限的操作和上面讲的给user授权是一致的。

 

3、获得权限上授予情况信息的视图

 

 

4、对象权限的收回

 

REVOKE {privilege [, privilege ... ] | ALL} ON object FROM {user [, user ... ] | role | PUBLIC} [CASCADE CONSTRAINTS];

 

其中,CASCADE CONSTRAINTS子句会收回所有通过REFERENCES方法创建的参照完整性约束的权限。在revoke之后,所有由with grant option进行授权的user的相应权限也会被收回。

 

5、database link(可以使本地user访问远程database)

 

database link是一个指针,定义了一个Oracle database server与另一个database server进行交互的方法。link 指针实际是一个数据字典表中的实体。为了访问link,必须连接包含该数据字典实体的本地database。

 

database link的最大的优点是它允许users访问其他user在远程database的objects。

 

具体创建实例:

 

CREATE PUBLIC DATABASE LINK hq.acme.com USING ’sales’;

 

其中,USING子句指明了远程database的service名称。database link创建之后,就可发起如下的访问:

 

SELECT FROM fred.emp@HO.ACME.COM;

 

 

 

责任编辑:佚名 来源: 互联网
相关推荐

2010-04-09 15:22:57

Oracle数据库

2010-05-04 09:14:11

Oracle数据库

2010-05-25 17:01:44

MySQL命令行

2010-04-20 13:17:44

2010-04-15 11:41:21

Oracle 数据库

2010-05-19 17:14:50

MySQL&Oracl

2019-07-30 15:13:30

2010-04-30 12:09:26

Oracle数据库

2010-05-21 17:51:58

MySQL数据库

2010-04-09 10:13:13

Oracle数据字典

2010-05-17 15:34:30

MySql数据库

2010-04-14 11:22:12

Oracle同时访问

2010-05-25 11:13:07

MySQL数据库

2023-12-28 08:00:00

数据库人工智能

2010-05-19 15:01:14

MySQL数据导入

2010-04-19 17:39:04

Oracle导入

2010-06-12 09:46:05

MySQL数据库

2010-05-17 15:58:05

MySQL Admin

2010-04-12 09:36:29

Oacle merge

2020-02-13 15:39:33

OracleGaussDB数据迁移
点赞
收藏

51CTO技术栈公众号