Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2a3db8c

Browse files
committed
sepgsql: Documentation improvements.
Fixes by me, per griping by Thom Brown.
1 parent0f05840 commit2a3db8c

File tree

1 file changed

+68
-52
lines changed

1 file changed

+68
-52
lines changed

‎doc/src/sgml/sepgsql.sgml

Lines changed: 68 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -422,69 +422,85 @@ UPDATE t1 SET x = 2, y = md5sum(y) WHERE z = 100;
422422
addition or deletion of name entries within a particular schema.
423423
</para>
424424
<para>
425-
When a <literal>CREATE</> command is executed, <literal>create</> will
426-
be checked on the object being constructed for each object types.
427-
A default security label will be assigned to the new database object,
428-
and the <literal>create</> permission will be checked on the pair
429-
of security label of the client and the new object itself.
430-
We consider <xref linkend="sql-createtable"> to construct a table and
431-
underlying columns at the same time, so it requires the users to have
432-
permission to create both the table and its columns.
433-
</para>
434-
<para>
435-
A few additional checks are applied depending on object types.
436-
On <xref linkend="sql-createdatabase">, <literal>getattr</> permission
437-
will be checked on the source or template database of the new database,
438-
not only <literal>create</> on the new database.
439-
On creation of objects within a particular schema (tables, views,
440-
sequences and procedures), <literal>add_name</> will be also checked
441-
on the schema, not only <literal>create</> on the new object itself.
442-
On <xref linkend="sql-createfunction">, <literal>install</> permission
443-
will be checked if <literal>leakproof</> attribute was given, not only
444-
<literal>create</> on the new function. This permission will be also
445-
checked when user tries to turn on <literal>leakproof</> attribute
446-
using <xref linkend="sql-alterfunction"> command, with
447-
<literal>setattr</> permission on the function being altered.
425+
Creating a new database object requires <literal>create</> permission.
426+
<productname>SELinux</> will grant or deny this permission based on the
427+
client's security label and the proposed security label for the new
428+
object. In some cases, additional privileges are required:
448429
</para>
449430

431+
<itemizedlist>
432+
<listitem>
433+
<para>
434+
<xref linkend="sql-createdatabase"> additionally requires
435+
<literal>getattr</> permission for the source or template database.
436+
</para>
437+
</listitem>
438+
<listitem>
439+
<para>
440+
Creating a schema object additionally requires <literal>add_name</>
441+
permission on the parent schema.
442+
</para>
443+
</listitem>
444+
<listitem>
445+
<para>
446+
Creating a table additionally requires permission to create each
447+
individual table column, just as if each table column were a
448+
separate top-level object.
449+
</para>
450+
</listitem>
451+
<listitem>
452+
<para>
453+
Creating a function marked as <literal>LEAKPROOF</> additionally
454+
requires <literal>install</> permission. (This permission is also
455+
checked when <literal>LEAKPROOF</> is set for an existing function.)
456+
</para>
457+
</listitem>
458+
</itemizedlist>
459+
450460
<para>
451461
When <literal>DROP</> command is executed, <literal>drop</> will be
452-
checked on the object being removed for each object types. Permissions
453-
will be also checked for objects dropped indirectly via <literal>CASCADE</>.
454-
Deletion of objects contained within a particular schema (tables, views,
455-
sequences and procedures) additionally requires
456-
<literal>remove_name</> on the schema.
462+
checked on the object being removed. Permissions will be also checked for
463+
objects dropped indirectly via <literal>CASCADE</>. Deletion of objects
464+
contained within a particular schema (tables, views, sequences and
465+
procedures) additionally requires <literal>remove_name</> on the schema.
457466
</para>
458467

459468
<para>
460469
When <literal>ALTER</> command is executed, <literal>setattr</> will be
461-
checked on the object being modified for each object types.
462-
In addition, <literal>remove_name</> and <literal>add_name</>
463-
will be checked on the old and new schemas, respectively, when an
464-
object is moved to a new schema.
465-
For certain object types, additional checks are performed.
470+
checked on the object being modified for each object types, except for
471+
subsidiary objects such as the indexes or triggers of a table, where
472+
permissions are instead checked on the parent object. In some cases,
473+
additional permissions are required:
466474
</para>
467475

468-
<para>
469-
When objects that are subsidiary of other objects (such as a table's
470-
indexes or triggers) are created, dropped or altered,
471-
<literal>setattr</> permission will be checked on the main object,
472-
instead of the subsidiary object itself.
473-
</para>
474-
475-
<para>
476-
When <xref linkend="sql-security-label"> is executed, <literal>setattr</>
477-
and <literal>relabelfrom</> will be checked on the object being relabeled
478-
with its old security label, then <literal>relabelto</> with the supplied
479-
new security label.
480-
</para>
476+
<itemizedlist>
477+
<listitem>
478+
<para>
479+
Moving an object to a new schema additionally requires
480+
<literal>remove_name</> permission on the old schema and
481+
<literal>add_name</> permission on the new one.
482+
</para>
483+
</listitem>
484+
<listitem>
485+
<para>
486+
Setting the <literal>LEAKPROOF</> attribute on a function requires
487+
<literal>install</> permission.
488+
</para>
489+
</listitem>
490+
<listitem>
491+
<para>
492+
Using <xref linkend="sql-security-label"> on an object additionally
493+
requires <literal>relabelfrom</> permission for the object in
494+
conjunction with its old security label and <literal>relabelto</>
495+
permission for the object in conjunction with its new security label.
496+
(In cases where multiple label providers are installed and the user
497+
tries to set a security label, but it is not managed by
498+
<productname>SELinux</>, only <literal>setattr</> should be checked here.
499+
This is currently not done due to implementation restrictions.)
500+
</para>
501+
</listitem>
502+
</itemizedlist>
481503

482-
<para>
483-
In the case where multiple label providers are installed and the user tries
484-
to set a security label, but it is not managed by <productname>SELinux</>,
485-
only <literal>setattr</> should be checked here.
486-
This is currently not done due to implementation restrictions.
487-
</para>
488504
</sect3>
489505

490506
<sect3>

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp