查看限制无效

时间:2018-01-12 23:40:10

标签: oracle security

我需要根据oracle数据库上的用户创建视图 为此,使用System I使用以下查询:

CREATE OR REPLACE VIEW  PROT_VIEW AS SELECT USER_ID, ORDER_DATE, ORDER_DESC 
FROM PROT 
WHERE USER_ID=USER;

表及其值如下:

CREATE TABLE PROT(  
USER_ID VARCHAR2(10),  
ORDER_DATE DATE,  
ORDER_DESC VARCHAR2(60)); 

INSERT INTO PROT VALUES ('ADM',SYSDATE+4,'FOUR DAYS LATER');  
INSERT INTO PROT VALUES ('ADM',SYSDATE+5,'FIVE DAYS LATER'); 
INSERT INTO PROT VALUES ('STUD1',SYSDATE+6,'SIX DAYS LATER');  
INSERT INTO PROT VALUES ('STUD2',SYSDATE+7,'SEVEN DAYS LATER') ;

在此之后我有3个不同的用户(adm,stud1和stud2),当我登录时,我应该从每个选择中获得3个不同的结果(每个用户一个)(取决于用户记录)。 / p>

问题是,无论我登录的是哪个用户(system,adm,stud1,stud2),我都会得到空表。

我想知道我做错了什么,我该怎么做才能解决这个问题

提前感谢任何愿意提供帮助的人

更新:我一直在搞乱,问题是我无法连接到这些用户。我已经向这些用户授予了与系统的创建会话,并尝试连接到他们,但我被困在系统

2 个答案:

答案 0 :(得分:0)

完成此任务的好方法是在我看来使用public synonym

在系统架构上创建视图(prot_view)后,创建一个与视图同名的公共同义词:

create or replace public synonym prot_view for prot_view;

并发出:

grant select on prot_view to public;

能够从每个模式获得所需的结果,而无需使用system模式名称作为前缀:

select * from prot_view;

答案 1 :(得分:0)

  

"问题是我无法连接到这些用户"

user是一个pseduo列,它返回您当前连接的帐户的名称。您已以SYSTEM身份登录,因此user的值为create session,这就是您的视图未返回任何行的原因。因此,与您的问题标题相反,视图限制 正在运行。

这意味着真正的问题是,为什么你不能像其他用户那样连接?您拥有SYSTEM,因此您拥有必要的权限,可以通过将密码更改为您知道或授予<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/backgroudColor" xmlns:android="http://schemas.android.com/apk/res/android"> <RelativeLayout android:layout_width="match_parent" android:layout_height="150sp" android:background="@color/colorAccent" android:id="@+id/relative"> <TextView android:id="@+id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:paddingLeft="30dp" android:paddingRight="15dp" android:text="30" android:textSize="62sp" /> <TextView android:id="@+id/weekDay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Monday" android:textSize="26sp" android:layout_toRightOf="@+id/date" android:layout_alignTop="@+id/date" android:paddingTop="10dp" /> <TextView android:id="@+id/dateMonthYear" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="January 2016" android:layout_toRightOf="@+id/date" android:layout_marginTop="70dp" android:paddingTop="5dp" /> </RelativeLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="60dp" android:background="#e74c3c" android:id="@+id/fajar"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Fajar" android:layout_gravity="center_vertical" android:textSize="26sp" android:paddingStart="10dp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="60dp" android:background="#2ecc71" android:id="@+id/zuhar"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Zuhar" android:layout_gravity="center_vertical" android:textSize="26sp" android:paddingStart="10dp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="60dp" android:background="#3498db" android:id="@+id/asar"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Asar" android:layout_gravity="center_vertical" android:textSize="26sp" android:paddingStart="10dp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="60dp" android:background="#9b59b6" android:id="@+id/maghrib"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Maghrib" android:layout_gravity="center_vertical" android:textSize="26sp" android:paddingStart="10dp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="60dp" android:background="#f1c40f" android:id="@+id/isha"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Isha" android:layout_gravity="center_vertical" android:textSize="26sp" android:paddingStart="10dp"/> </LinearLayout> <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/backgroudColor"> <include layout="@layout/bottomsheet"/> </android.support.design.widget.CoordinatorLayout> </LinearLayout> 或其他任何内容来理顺帐户。