2017-02-09 7 views
3

psql\l+を実行してすべてのデータベースとそのアクセス権のリストを取得すると、一部のデータベースには空のアクセス権があることがわかります。 psqlAccess privileges列が空白の場合はどういう意味ですか?psqlに空のデータベースアクセス権があるとはどういう意味ですか?

何らかの種類のデフォルトがある場合、どのようにそのデフォルトが表示されますか?

me=# \l+ 
                     List of databases 
    Name  | Owner | Encoding | Collate | Ctype | Access privileges | Size | Tablespace |    Description     
-------------+-------------+----------+-------------+-------------+-----------------------+---------+------------+-------------------------------------------- 
me   | me   | UTF8  | en_US.UTF-8 | en_US.UTF-8 |      | 7239 kB | pg_default | 
postgres | postgres | UTF8  | en_US.UTF-8 | en_US.UTF-8 |      | 7151 kB | pg_default | default administrative connection database 
template0 | postgres | UTF8  | en_US.UTF-8 | en_US.UTF-8 | =c/postgres   +| 7041 kB | pg_default | unmodifiable empty database 
      |    |   |    |    | postgres=CTc/postgres |   |   | 
template1 | postgres | UTF8  | en_US.UTF-8 | en_US.UTF-8 | =c/postgres   +| 7041 kB | pg_default | default template for new databases 
      |    |   |    |    | postgres=CTc/postgres |   |   | 
(4 rows) 

答えて

5

What does it mean when the Access privileges column is blank

Quote from the manual:

"アクセス権" 欄は、指定されたオブジェクトの空の場合、そのオブジェクトはデフォルトの権限(つまり、その権限を有することを意味します列はnullです)。

PostgreSQLは上のデフォルトの権限を付与します。

上で説明したように、デフォルトの権限は、常にデフォルトの権限もdocumented in the manualあり、所有者のためのすべての権限が含まれ、オブジェクトの種類に応じてPUBLICのためのいくつかの権限を含めることができますPUBLICへのオブジェクトのいくつかのタイプ。 PUBLICには、表、列、スキーマまたは表領域にはデフォルトで特権が付与されていません。他のタイプの場合、PUBLICに付与されるデフォルトの特権は次のとおりです。CONNECTおよびCREATE TEMP TABLE for databases;関数のEXECUTE特権。言語にはUSAGE特権があります。もちろん、オブジェクトの所有者は、デフォルトの権限と明示的に付与された権限の両方をREVOKEできます。 (最大限のセキュリティを確保するには、オブジェクトを作成するのと同じトランザクションでREVOKEを発行し、別のユーザーがそのオブジェクトを使用できるウィンドウはありません)また、ALTER DEFAULT PRIVILEGESコマンドを使用してこれらの初期デフォルト権限設定を変更できます。

+0

デフォルトの設定はどうすればわかりますか?この目的のために、 『デフォルトの権限』は常に組み込みのデフォルトの権限オブジェクトの型のためを意味アン: - も(「上述したよう」)のマニュアルで説明しています – Buttons840

+0

ちょうどリンク –

+0

リンクドキュメントを読むには注意が」、と言います。権限がALTER DEFAULT PRIVILEGESコマンドの影響を受けたオブジェクトは、常にALTERの影響を含む明示的な権限エントリとともに表示されます。私は空白の列が "デフォルト"を意味していたと思っていたし、 "デフォルト"が何を意味するかは変更可能だと思っていた。空白の特権列は、データベースの状態に関係なく常に同じ意味を持つことを正しく理解していますか? – Buttons840

関連する問題