<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Easy Life,Easy Way &#187; synonym</title>
	<atom:link href="http://www.onlyring.net/tag/synonym/feed" rel="self" type="application/rss+xml" />
	<link>http://www.onlyring.net</link>
	<description>Just another ORACLE DBA blog.</description>
	<lastBuildDate>Wed, 21 Jul 2010 10:54:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Only sys user and owner can compile the synonym?</title>
		<link>http://www.onlyring.net/2008/08/31/oracle-rdbms/oracle-3.html</link>
		<comments>http://www.onlyring.net/2008/08/31/oracle-rdbms/oracle-3.html#comments</comments>
		<pubDate>Sun, 31 Aug 2008 18:37:19 +0000</pubDate>
		<dc:creator>onlyring</dc:creator>
				<category><![CDATA[Oracle RDBMS]]></category>
		<category><![CDATA[synonym]]></category>

		<guid isPermaLink="false">http://www.onlyring.net/2008/08/31/oracle-rdbms/oracle-3.html</guid>
		<description><![CDATA[<p>Oracle 中的同义词是schema 对象的一个别名。同义词分为公共(public)同义词和私有(private)同义词.公共同义词可以被所有数据库用户所访问，而私有同义词只能被owner和被授权用户访问。

同义词可以不依赖于引用的对象单独存在，所以我们可以修改同义词所应用的对象，而后只需要重新定义(删除重建，同义词不可以通过ALTER 语法来重新定义)同义词就可以，这样可以降低应用程序的复杂性。当同义词被删除后所有被同义词应用的对象(当然TABLE 之类就除外了)将变成INVALID。
当然如果你删除或修改了某个同义词所引用的对象，同义词也会变成INVALID,当然我们不需要去手动compile同义词，当程序下次访问的时候，同义词自动会变成VALID，只要同义词所引用的对象没有错误就可以。
当然，如果你愿意你也可以使用ALTER (PUBLIC) SYNONYM语句手工编译同义词，注意，这里你只能使用sys user或者owner来编译private同义词。而public同义词只能用sys user来编译了。对于非owner或者其他任何用户，都会收到ORA-01031: insufficient privilege错误。
下面来实验一下：</p>

?View Code SQL1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
SQL&#62; conn hr/hr
已连接。
SQL&#62; create synonym syn_jobs for jobs;
&#160;
同义词已创建。
&#160;
SQL&#62; alter synonym syn_jobs compile;
&#160;
同义词已变更。
&#160;
SQL&#62; conn /as sysdba
已连接。
SQL&#62;  alter synonym syn_jobs compile;
 alter synonym syn_jobs compile
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
&#160;
&#160;
SQL&#62;  alter synonym hr.syn_jobs compile;
&#160;
同义词已变更。
&#160;
SQL&#62; create public synonym syn_p_jobs for hr.jobs;
&#160;
同义词已创建。
&#160;
SQL&#62; alter synonym syn_p_jobs compile;
alter synonym [...]]]></description>
		<wfw:commentRss>http://www.onlyring.net/2008/08/31/oracle-rdbms/oracle-3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
