A. Oracle把視圖查詢許可權給某用戶的sql是什麼
oracle給某用戶授權試圖查詢的SQL語句為:
SQL> grant select on v_$mystat to test1;
Grant succeeded.
這樣 test1用戶就擁有了 查詢v$mystat視圖的許可權了
收回許可權命令:
SQL>revoke select on v_$mystat from test1;
(1)sql用戶視圖擴展閱讀
oracle 的用戶管理的常用命令介紹:
1、創建用戶:create user 用戶名 identified by 密碼;
SQL> create user scw identified by 123;
2、修改其他用戶密碼 需要許可權;
SQL> conn system/123;
已連接。
SQL> alter user scw identified by 123;
3、賦予用戶連接資料庫的許可權:
SQL>grant create session to zhansgan;
4、查看當前用戶所有表的表名:
SQL> select table_name from user_tables;
B. 資料庫中的數據視圖與用戶數據視圖的區別與聯系。
在資料庫系統原理中,存在三級模式:外模式、模式(概念模式)、內模式(存儲模式),分別對應視圖級、概念級、物理級。
所謂視圖,就是指觀察、認識和理解數據的范圍、角度和方法,是資料庫在用戶「眼中"的反映,很顯然,不同層次(級別)用戶所「看到』』的資料庫是不相同的。
你問題中提到的「用戶數據視圖」應該是三級模式中的視圖級即是用戶使用的數據視圖級,主要為局部邏輯結構,因為模式上很多個外模式,外模式到模式的映射定義了局部數據邏輯結構與全局邏輯結構之間的對應關系,表現了數據的邏輯獨立性。
C. 在sql資料庫里的視圖是什麼意思,怎麼理解
視圖為原始資料庫數據的一種變換,是查看錶中數據的另外一種方式。可以將視圖看成是一個移動的窗口,通過它可以看到感興趣的數據。視圖為從一個或多個實際表中獲得的,這些表的數據存放在資料庫中。那些用於產生視圖的表叫做該視圖的基表。一個視圖也可以從另一個視圖中產生。
視圖的定義存在資料庫中,與此定義相關的數據並沒有再存一份於資料庫中。通過視圖看到的數據存放在基表中。
(3)sql用戶視圖擴展閱讀
視圖有很多優點,主要表現在:
1、視點集中
使用戶只關心它感興趣的某些特定數據和他們所負責的特定任務。這樣通過只允許用戶看到視圖中所定義的數據而不是視圖引用表中的數據而提高了數據的安全性。
2、簡化操作
視圖大大簡化了用戶對數據的操作。因為在定義視圖時,若視圖本身就是一個復雜查詢的結果集,這樣在每一次執行相同的查詢時,不必重新寫這些復雜的查詢語句,只要一條簡單的查詢視圖語句即可。可見視圖向用戶隱藏了表與表之間的復雜的連接操作。
3、定製數據
視圖能夠實現讓不同的用戶以不同的方式看到不同或相同的數據集。因此,當有許多不同水平的用戶共用同一資料庫時,這顯得極為重要。
4、合並分割數據
在有些情況下,由於表中數據量太大,故在表的設計時常將表進行水平分割或垂直分割,但表的結構的變化卻對應用程序產生不良的影響。如果使用視圖就可以重新保持原有的結構關系,從而使外模式保持不變,原有的應用程序仍可以通過視圖來重載數據。
5、安全性
視圖可以作為一種安全機制。通過視圖用戶只能查看和修改他們所能看到的數據。其它資料庫或表既不可見也不可以訪問。如果某一用戶想要訪問視圖的結果集,必須授予其訪問許可權。視圖所引用表的訪問許可權與視圖許可權的設置互不影響。
D. sql 如何查看視圖的創建用戶
select owner,view_name from all_views where view_name = '';注意視圖名要大寫
E. SQL 中如何讓不同的用戶看到同一個視圖中不同的列
在寫後台代碼處理sql腳本的時候,依據不同的用戶編寫不同的欄位值,或者編寫相同的sql語句,返回給用戶的時候再處理顯示列。
F. 獲取資料庫中的全部用戶視圖
SQL?ASP?創建記錄集
<%
set conn=server.CreateObject("adodb.connection")
conn.open "driver={SQL server};server=.;database=db_database;uid=sa;pwd=1"
%> <title>獲取資料庫中的全部用戶視圖</title><table width="485" height="360" border="0" align="center" cellspacing="0" background="bg.jpg" >
<tr>
<td height="81" align="center"><span class="style1"><br>
<span class="style2">資料庫中的視圖:</span></span></td>
</tr>
<tr>
<td align="center" valign="top"><span class="style1">
<%
set rs=server.CreateObject("adodb.recordset")
sql="select name from sysobjects where xtype = 'v'"
rs.open sql,conn,1,3
for i=1 to rs.recordcount
%>
<table width="200" border="0">
<tr>
<td>【<%=rs("name")%>】</td>
</tr>
</table><%
rs.movenext()
next
%>
G. sql server 2008設置用戶訪問視圖的許可權,但是系統視圖還在,並且可以編輯,可以關閉嗎
information_schema架構下的視圖是用來獲取sql server系統的一些信息用的,這個針對不同用戶的許可權返回不同的結果,並且是只讀的,用戶不能編輯,也不能查看被授予的許可權以外的內容,所以無需擔心,當然這個也是不能「關閉」的。
H. 在sql中,用戶可以直接操作視圖嗎
視圖只能查詢,不能插入。
可以把它看作一個表格查詢的批處理。
I. 如何用SQL語句創建一個視圖
使用create view語句就可以創建視圖了,具體語句如下:
create view viewname as select * from Tab_EdsProd(Tab_EdsProd是表的名字)where (後面可以接一線限制的條件)。
刪除視圖:drop view viewname。
(9)sql用戶視圖擴展閱讀
視圖的作用:
1、使用視圖,可以定製用戶數據,聚焦特定的數據。
2、使用視圖,可以簡化數據操作。
3、使用視圖,基表中的數據就有了一定的安全性。因為視圖是虛擬的,物理上是不存在的,只是存儲了數據的集合,我們可以將基表中重要的欄位信息,可以不通過視圖給用戶。
視圖是動態的數據的集合,數據是隨著基表的更新而更新。同時,用戶對視圖,不可以隨意的更改和刪除,可以保證數據的安全性。
4、使用視圖可以合並分離的數據,創建分區視圖。
J. 在SQL中,建立視圖用什麼命令
1.使用CREATE VIEW語句創建視圖
2.語法格式為:
CREATE VIEW 視圖名[(列名1,列名2[,…n])]
[WITH ENCRYPTION]]
AS 查詢語句
[WITH CHECK OPTION]
其中:
l 列名 視圖中包含的列,可以有多個列名,最多可引用1024個列。若使用與源表或視圖中相同的列名時,則不必給出列名。
l ENCRYPTION 說明在系統表syscomments中存儲CREATE VIEW語句時進行加密。
l 查詢語句 用來創建視圖的SELECT語句。可在SELECT語句中查詢多個表或視圖,以表明新創建的視圖所參照的表或視圖,但對SELECT語句有以下的限制:
①定義視圖的用戶必須對所參照的表或視圖有查詢許可權,即可執行SELECT語句。
②不能使用COMPUTE或COMPUTE BY子句。
③不能使用ORDER BY子句。
④不能使用INTO子句。
⑤不能在臨時表或表變數上創建視圖。
l WITH CHECK OPTION 指出在視圖上所進行的修改都要符合查詢語句所指定的限制條件,這樣可以確保數據修改後仍可通過視圖看到修改的數據。例如對於V_05GZYY視圖,只能修改除「班級編號」欄位以外的欄位值,而不能把「班級編號」欄位的值改為「=』20051001』」以外的值,以保證仍可通過V_05GZYY視圖查詢到修改後的數據。
創建一個名為「Test」的視圖,要求顯示Test為01的信息。
在查詢分析器中運行如下命令:
CREATE VIEW Test
AS begin
SELECT * FROM Test WHERE test='01'
end