doc-exports/docs/dws/umn/dws_03_0197.html
Lu, Huayi 95132e24fc DWS UMN 830.201_new version
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com>
Reviewed-by: Rechenburg, Matthias <matthias.rechenburg@t-systems.com>
Co-authored-by: Lu, Huayi <luhuayi@huawei.com>
Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
2024-05-27 11:54:34 +00:00

234 lines
43 KiB
HTML

<a name="EN-US_TOPIC_0000001381808757"></a><a name="EN-US_TOPIC_0000001381808757"></a>
<h1 class="topictitle1">How Do I Grant Table Permissions to a User?</h1>
<div id="body0000001381808757"><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p8060118">This section describes how to grant users the SELECT, INSERT, UPDATE, or full permissions of tables to users.</p>
<div class="section" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_section6335144512142"><h4 class="sectiontitle">Syntax</h4><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen6272205931311"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span>
<span class="normal">6</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GRANT</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">INSERT</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">UPDATE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">DELETE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">TRUNCATE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">REFERENCES</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">TRIGGER</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">ANALYZE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">ANALYSE</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">PRIVILEGES</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="err">}</span>
<span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="k">table_name</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span>
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="n">TABLES</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="k">SCHEMA</span><span class="w"> </span><span class="k">schema_name</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="err">}</span>
<span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="n">role_name</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">PUBLIC</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span>
<span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="k">GRANT</span><span class="w"> </span><span class="k">OPTION</span><span class="w"> </span><span class="p">];</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_section16988155710145"><h4 class="sectiontitle">Scenario</h4><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p0961243191620">Assume there are users <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b1495742114814">u1</strong>, <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b966592164915">u2</strong>, <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b1278294184910">u3</strong>, <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b167251672493">u4</strong>, and <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b8478943174817">u5</strong> and five schemas named after these users. Their permission requirements are as follows:</p>
<ul id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_ul119581350201615"><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li19958115011163">User <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b16371075515">u2</strong> is a read-only user and requires the SELECT permission for the <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b9503111695116">u1.t1</strong> table.</li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li56212531169">User <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b441311918518">u3</strong> requires the SELECT permission for the <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b1414519105114">u1.t1</strong> table.</li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li1467613711716">User <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b5798195065110">u3</strong> requires the UPDATE permission for the <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b12799135095111">u1.t1</strong> table.</li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li51011423181710">User <strong id="EN-US_TOPIC_0000001381808757__b1921018529410">u5</strong> requires all permissions of table <strong id="EN-US_TOPIC_0000001381808757__b20679459347">u1.t1</strong>.</li></ul>
<p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p1188573118320"></p>
<p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p95541310929"><span><img id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_image173861411125" src="figure/en-us_image_0000001381728629.png" title="Click to enlarge" class="imgResize"></span></p>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_table1415046131512" frame="border" border="1" rules="all"><caption><b>Table 1 </b>Permissions of the u1.t1 table</caption><thead align="left"><tr id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_row20151369158"><th align="left" class="cellrowborder" valign="top" width="6.999999999999999%" id="mcps1.3.3.6.2.8.1.1"><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p3831151610205">User</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="6.999999999999999%" id="mcps1.3.3.6.2.8.1.2"><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p131511368154">Type</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="57.999999999999986%" id="mcps1.3.3.6.2.8.1.3"><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p615114610154">GRANT Statement</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="6.999999999999999%" id="mcps1.3.3.6.2.8.1.4"><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p4187215942">Query</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="6.999999999999999%" id="mcps1.3.3.6.2.8.1.5"><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p131872156419">Insert</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="6.999999999999999%" id="mcps1.3.3.6.2.8.1.6"><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p6187111519419">Update</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="6.999999999999999%" id="mcps1.3.3.6.2.8.1.7"><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p161878151411">Delete</p>
</th>
</tr>
</thead>
<tbody><tr id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_row76688271269"><td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.1 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p1883121622014">u1</p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.2 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p466812276267">Owner</p>
</td>
<td class="cellrowborder" valign="top" width="57.999999999999986%" headers="mcps1.3.3.6.2.8.1.3 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p4668152714268">-</p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.4 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p95137331946"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b1151314331748"></strong></p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.5 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p19513193312420"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b851319331243"></strong></p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.6 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p1851333319418"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b125137335418"></strong></p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.7 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p951317331418"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b15513193316418"></strong></p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_row16151146111513"><td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.1 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p135731945193313">u2</p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.2 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p15244154319332">Read-only user</p>
</td>
<td class="cellrowborder" valign="top" width="57.999999999999986%" headers="mcps1.3.3.6.2.8.1.3 "><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen183301354194616"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GRANT</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">u2</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.4 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p594155716255"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b181266519461"></strong></p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.5 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p194633564268">x</p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.6 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p86682025271">x</p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.7 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p77901521122715">x</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_row91518661512"><td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.1 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p5831131611202">u3</p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.2 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p1815166131515">INSERT user</p>
</td>
<td class="cellrowborder" valign="top" width="57.999999999999986%" headers="mcps1.3.3.6.2.8.1.3 "><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen9983122811228"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GRANT</span><span class="w"> </span><span class="k">INSERT</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">u3</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.4 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p1094114579255">x</p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.5 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p5463175620267"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b16660115318462"></strong></p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.6 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p10668529276">x</p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.7 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p6790102116279">x</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_row115111671510"><td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.1 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p5831121612013">u4</p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.2 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p1458115641818">UPDATE user</p>
</td>
<td class="cellrowborder" valign="top" width="57.999999999999986%" headers="mcps1.3.3.6.2.8.1.3 "><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen15640113310412"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GRANT</span><span class="w"> </span><span class="k">SELECT</span><span class="p">,</span><span class="k">UPDATE</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">u4</span><span class="p">;</span><span class="w"> </span>
</pre></div></td></tr></table></div>
</div>
<div class="notice" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_note18863417184113"><span class="noticetitle"> NOTICE: </span><div class="noticebody"><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p1692082994116">The UPDATE permission must be granted together with the SELECT permission, or information leakage may occur.</p>
</div></div>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.4 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p394125762514"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b1143717555466"></strong></p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.5 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p1046315612266">x</p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.6 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p146687213271"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b14186132124711"></strong></p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.7 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p1779015211273">x</p>
</td>
</tr>
<tr id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_row1895816571917"><td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.1 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p88311616182016">u5</p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.2 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p495919510192">Users with all permissions</p>
</td>
<td class="cellrowborder" valign="top" width="57.999999999999986%" headers="mcps1.3.3.6.2.8.1.3 "><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen97221049142116"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GRANT</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="k">PRIVILEGES</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">u5</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.4 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p094110575255"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b206172057104619"></strong></p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.5 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p646318569267"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b158251459134613"></strong></p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.6 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p2668225279"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b15826165917460"></strong></p>
</td>
<td class="cellrowborder" valign="top" width="6.999999999999999%" headers="mcps1.3.3.6.2.8.1.7 "><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p157901921202719"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b148271259204613"></strong></p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_section19449123812912"><h4 class="sectiontitle">Procedure</h4><p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p3936914164211">Perform the following steps to grant and verify permissions:</p>
<ol id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_ol552482754710"><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li65241327164718"><span>Connect to your database as <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b8635201418215">dbadmin</strong>. Run the following statements to create users <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b955110581011">u1</strong> to <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b3551458418">u5</strong>. Five schemas will be created and named after the users by default.</span><p><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen252462716471"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">USER</span><span class="w"> </span><span class="n">u1</span><span class="w"> </span><span class="n">PASSWORD</span><span class="w"> </span><span class="s1">'{password}'</span><span class="p">;</span>
<span class="k">CREATE</span><span class="w"> </span><span class="k">USER</span><span class="w"> </span><span class="n">u2</span><span class="w"> </span><span class="n">PASSWORD</span><span class="w"> </span><span class="s1">'{password}'</span><span class="p">;</span>
<span class="k">CREATE</span><span class="w"> </span><span class="k">USER</span><span class="w"> </span><span class="n">u3</span><span class="w"> </span><span class="n">PASSWORD</span><span class="w"> </span><span class="s1">'{password}'</span><span class="p">;</span>
<span class="k">CREATE</span><span class="w"> </span><span class="k">USER</span><span class="w"> </span><span class="n">u4</span><span class="w"> </span><span class="n">PASSWORD</span><span class="w"> </span><span class="s1">'{password}'</span><span class="p">;</span>
<span class="k">CREATE</span><span class="w"> </span><span class="k">USER</span><span class="w"> </span><span class="n">u5</span><span class="w"> </span><span class="n">PASSWORD</span><span class="w"> </span><span class="s1">'{password}'</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</p></li></ol><ol start="2" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_ol1752410277472"><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li17661019135715"><span>Create table <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b4235132113313">u1.t1</strong> in schema <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b167806221037">u1</strong>.</span><p><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen17411951525"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="p">(</span><span class="n">c1</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="w"> </span><span class="n">c2</span><span class="w"> </span><span class="nb">int</span><span class="p">);</span>
</pre></div></td></tr></table></div>
</div>
</p></li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li716313355586"><span>Insert two records to the table.</span><p><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen1645711489584"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span>
</pre></div></td></tr></table></div>
</div>
</p></li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li1073163911505"><span>Grant schema permissions to users.</span><p><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen082252375314"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GRANT</span><span class="w"> </span><span class="k">USAGE</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="k">SCHEMA</span><span class="w"> </span><span class="n">u1</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">u2</span><span class="p">,</span><span class="n">u3</span><span class="p">,</span><span class="n">u4</span><span class="p">,</span><span class="n">u5</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</p></li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li12544143555116"><span>Grant user <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b10124185518611">u2</strong> the permission to query the <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b189354571562">u1.t1</strong> table.</span><p><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen169285574564"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GRANT</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">u2</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</p></li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li89842328507"><span>Start a new session and connect to the database as user <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b157014158715">u2</strong>. Verify that user <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b7238153813716">u2</strong> can query the <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b7629440073">u1.t1</strong> table but cannot write to or modify the table.</span><p><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen683611513586"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="p">;</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">20</span><span class="p">);</span>
<span class="k">UPDATE</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">c2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">c1</span><span class="w"> </span><span class="o">=</span><span class="mi">1</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p1290384725717"><span><img id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_image152762012824" src="figure/en-us_image_0000001381889117.png"></span></p>
</p></li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li1269522105717"><span>In the session started by user <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b8852133218811">dbadmin</strong>, grant permissions to users <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b1647115481383">u3</strong>, <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b129241849283">u4</strong>, and <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b17591150989">u5</strong>.</span><p><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen5981414847"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GRANT</span><span class="w"> </span><span class="k">INSERT</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">u3</span><span class="p">;</span><span class="w"> </span><span class="c1">-- Allow u3 to insert data.</span>
<span class="k">GRANT</span><span class="w"> </span><span class="k">SELECT</span><span class="p">,</span><span class="k">UPDATE</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">u4</span><span class="p">;</span><span class="w"> </span><span class="c1">-- Allow u4 to modify the table.</span>
<span class="k">GRANT</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="k">PRIVILEGES</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">u5</span><span class="p">;</span><span class="w"> </span><span class="c1">-- Allow u5 to query, insert, modify, and delete table data.</span>
</pre></div></td></tr></table></div>
</div>
</p></li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li10513444"><span>Start a new session and connect to the database as user <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b1662473561015">u3</strong>. Verify that user <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b5624173571014">u3</strong> can query the <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b5624203551018">u1.t1</strong> table but cannot query or modify the table.</span><p><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen478995213149"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="p">;</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">20</span><span class="p">);</span>
<span class="k">UPDATE</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">c2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">c1</span><span class="w"> </span><span class="o">=</span><span class="mi">1</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p17489184717143"><span><img id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_image10219144916143" src="figure/en-us_image_0000001381808801.png"></span></p>
</p></li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li1157371591518"><span>Start a new session and connect to the database as user <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b9373728201115">u4</strong>. Verify that user <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b037382871112">u4</strong> can modify and query the <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b737314284117">u1.t1</strong> table, but cannot insert data to the table.</span><p><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen12769173612157"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="p">;</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">20</span><span class="p">);</span>
<span class="k">UPDATE</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">c2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">c1</span><span class="w"> </span><span class="o">=</span><span class="mi">1</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p1558073531516"><span><img id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_image16806115910157" src="figure/en-us_image_0000001330808808.png"></span></p>
</p></li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li9371543121611"><span>Start a new session and connect to the database as user <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b4899725151210">u5</strong>. Verify that user <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b1389952581214">u5</strong> can query, insert, modify, and delete data in the <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b16899132521212">u1.t1</strong> table.</span><p><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen156841114141717"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="p">;</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">20</span><span class="p">);</span>
<span class="k">UPDATE</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">c2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">c1</span><span class="w"> </span><span class="o">=</span><span class="mi">1</span><span class="p">;</span>
<span class="k">DELETE</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">u1</span><span class="p">.</span><span class="n">t1</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p20820138121917"><span><img id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_image188891393199" src="figure/en-us_image_0000001330648836.png"></span></p>
</p></li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li712384222111"><span>In the session started by user <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b10609141818178">dbadmin</strong>, execute the has_table_privilege function to query user permissions.</span><p><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_screen112881353103017"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_class</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">relname</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'t1'</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p1964818548215">Check the <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b1431957121715">relacl</strong> column in the command output. <em id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_i0886171481818">rolename</em><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b1675252551815">=</strong><em id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_i28864149185">xxxx/yyyy</em> indicates that <em id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_i1388610144188">rolename</em> has the <em id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_i188661411189">xxxx</em> permission on the table and the permission is obtained from <em id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_i7887101414187">yyyy</em>.</p>
<p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p74259226191">The following figure shows the command output.</p>
<p id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_p75531624171912"><span><img id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_image29011315399" src="figure/en-us_image_0000001330329232.png" title="Click to enlarge" class="imgResize"></span></p>
<ul id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_ul16269183611445"><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li13269036164411"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b0181125261919">u1=arwdDxtA/u1</strong> indicates that <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b178428553190">u1</strong> is the owner and has full permissions.</li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li12691336174411"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b1597712152015">u2=r/u1</strong> indicates that <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b186105602011">u2</strong> has the read permission.</li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li1426913612449"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b10513152514204">u3=a/u1</strong> indicates that <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b191437302204">u3</strong> has the insert permission.</li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li426917367443"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b1855983510208">u4=rw/u1</strong> indicates that <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b491173722011">u4</strong> has the read and update permissions.</li><li id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_li8269193618443"><strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b16999184412207">u5=arwdDxtA/u1</strong> indicates that <strong id="EN-US_TOPIC_0000001381808757__en-us_topic_0000001318121861_b14906175062010">u5</strong> has full permissions.</li></ul>
</p></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_03_0110.html">Account, Password, and Permission</a></div>
</div>
</div>
<script language="JavaScript">
<!--
image_size('.imgResize');
var msg_imageMax = "view original image";
var msg_imageClose = "close";
//--></script>