File: infoschema-column-privileges.html

package info (click to toggle)
pgadmin3 1.4.3-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 29,796 kB
  • ctags: 10,758
  • sloc: cpp: 55,356; sh: 6,164; ansic: 1,520; makefile: 576; sql: 482; xml: 100; perl: 18
file content (104 lines) | stat: -rw-r--r-- 4,575 bytes parent folder | download
1
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>31.7.column_privileges</title>
<link rel="stylesheet" href="stylesheet.css" type="text/css">
<link rev="made" href="pgsql-docs@postgresql.org">
<meta name="generator" content="DocBook XSL Stylesheets V1.70.0">
<link rel="start" href="index.html" title="PostgreSQL 8.1.4 Documentation">
<link rel="up" href="information-schema.html" title="Chapter31.The Information Schema">
<link rel="prev" href="infoschema-column-domain-usage.html" title="31.6.column_domain_usage">
<link rel="next" href="infoschema-column-udt-usage.html" title="31.8.column_udt_usage">
<link rel="copyright" href="ln-legalnotice.html" title="Legal Notice">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="infoschema-column-privileges"></a>31.7.<code class="literal">column_privileges</code></h2></div></div></div>
<p>   The view <code class="literal">column_privileges</code> identifies all
   privileges granted on columns to the current user or by the current
   user.  There is one row for each combination of column, grantor,
   and grantee.  Privileges granted to groups are identified in the
   view <code class="literal">role_column_grants</code>.
  </p>
<p>   In <span class="productname">PostgreSQL</span>, you can only grant
   privileges on entire tables, not individual columns.  Therefore,
   this view contains the same information as
   <code class="literal">table_privileges</code>, just represented through one
   row for each column in each appropriate table, but it only covers
   privilege types where column granularity is possible:
   <code class="literal">SELECT</code>, <code class="literal">INSERT</code>,
   <code class="literal">UPDATE</code>, <code class="literal">REFERENCES</code>.  If you
   want to make your applications fit for possible future
   developments, it is generally the right choice to use this view
   instead of <code class="literal">table_privileges</code> if one of those
   privilege types is concerned.
  </p>
<div class="table">
<a name="id693391"></a><p class="title"><b>Table31.5.<code class="literal">column_privileges</code> Columns</b></p>
<div class="table-contents"><table summary="column_privileges Columns" border="1">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>Name</th>
<th>Data Type</th>
<th>Description</th>
</tr></thead>
<tbody>
<tr>
<td><code class="literal">grantor</code></td>
<td><code class="type">sql_identifier</code></td>
<td>Name of the user that granted the privilege</td>
</tr>
<tr>
<td><code class="literal">grantee</code></td>
<td><code class="type">sql_identifier</code></td>
<td>Name of the user or group that the privilege was granted to</td>
</tr>
<tr>
<td><code class="literal">table_catalog</code></td>
<td><code class="type">sql_identifier</code></td>
<td>Name of the database that contains the table that contains the column (always the current database)</td>
</tr>
<tr>
<td><code class="literal">table_schema</code></td>
<td><code class="type">sql_identifier</code></td>
<td>Name of the schema that contains the table that contains the column</td>
</tr>
<tr>
<td><code class="literal">table_name</code></td>
<td><code class="type">sql_identifier</code></td>
<td>Name of the table that contains the column</td>
</tr>
<tr>
<td><code class="literal">column_name</code></td>
<td><code class="type">sql_identifier</code></td>
<td>Name of the column</td>
</tr>
<tr>
<td><code class="literal">privilege_type</code></td>
<td><code class="type">character_data</code></td>
<td>       Type of the privilege: <code class="literal">SELECT</code>,
       <code class="literal">INSERT</code>, <code class="literal">UPDATE</code>, or
       <code class="literal">REFERENCES</code>
      </td>
</tr>
<tr>
<td><code class="literal">is_grantable</code></td>
<td><code class="type">character_data</code></td>
<td>
<code class="literal">YES</code> if the privilege is grantable, <code class="literal">NO</code> if not</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><p>   Note that the column <code class="literal">grantee</code> makes no
   distinction between users and groups.  If you have users and groups
   with the same name, there is unfortunately no way to distinguish
   them.  A future version of <span class="productname">PostgreSQL</span>
   will possibly prohibit having users and groups with the same name.
  </p>
</div></body>
</html>