ホームページ データベース mysql チュートリアル PostgreSQL的用户、角色和权限管理

PostgreSQL的用户、角色和权限管理

Jun 07, 2016 pm 05:27 PM
post

PostgreSQL权限分为两部分,一部分是ldquo;系统权限rdquo;或者数据库用户的属性,可以授予role或user(两者区别在于login权限)

);一部分为数据库对象上的操作权限。对超级用户不做权限检查,其它走acl。对于数据库对象,开始只有所有者和超级用户可以做任何操作,其它走acl。。

 

可以用下面的命令创建和删除角色,

CREATE ROLE name;

DROP ROLE name;

为了方便,也可以在 shell 命令上直接调用程序 createuserdropuser,这些工具对相应命令提供了封装:

createuser name

dropuser name

 

 

数据库对象上的权限有:SELECT,INSERT, UPDATE,DELETE,RULE, REFERENCES,TRIGGER,CREATE, TEMPORARY,,EXECUTE,和 USAGE等,具体见下面定义

 

of privilege bits */

 

#define ACL_INSERT (1/* forrelations */

#defineACL_SELECT (1

#defineACL_UPDATE (1

#defineACL_DELETE (1

#defineACL_TRUNCATE (1

#defineACL_REFERENCES (1

#defineACL_TRIGGER (1

#defineACL_EXECUTE (1/* for functions */

#defineACL_USAGE (1/* for languages, namespaces, FDWs, and

* servers */

#defineACL_CREATE (1/* for namespaces and databases */

#defineACL_CREATE_TEMP (1/* for databases */

#defineACL_CONNECT (1/* for databases */

#defineN_ACL_RIGHTS 12 /* 1plus the last 1

#defineACL_NO_RIGHTS 0

/*Currently, SELECT ... FOR UPDATE/FOR SHARE requires UPDATE privileges */

#defineACL_SELECT_FOR_UPDATE ACL_UPDATE

 

我们可以用特殊的名字 PUBLIC 把对象的权限赋予系统中的所有角色。 在权限声明的位置上写 ALL,表示把适用于该对象的所有权限都赋予目标角色。

beigang=# grantall on schema csm_ca to public;

GRANT

beigang=# revoke all on schema csm_ca frompublic;

REVOKE

beigang=#

 

每种对象的all权限定义如下:

/*

* Bitmasks defining "allrights" for each supported object type

*/

#defineACL_ALL_RIGHTS_COLUMN (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_REFERENCES)

#defineACL_ALL_RIGHTS_RELATION (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_DELETE|ACL_TRUNCATE|ACL_REFERENCES|ACL_TRIGGER)

#defineACL_ALL_RIGHTS_SEQUENCE (ACL_USAGE|ACL_SELECT|ACL_UPDATE)

#defineACL_ALL_RIGHTS_DATABASE (ACL_CREATE|ACL_CREATE_TEMP|ACL_CONNECT)

#define ACL_ALL_RIGHTS_FDW (ACL_USAGE)

#defineACL_ALL_RIGHTS_FOREIGN_SERVER (ACL_USAGE)

#defineACL_ALL_RIGHTS_FUNCTION (ACL_EXECUTE)

#defineACL_ALL_RIGHTS_LANGUAGE (ACL_USAGE)

#defineACL_ALL_RIGHTS_LARGEOBJECT (ACL_SELECT|ACL_UPDATE)

#defineACL_ALL_RIGHTS_NAMESPACE (ACL_USAGE|ACL_CREATE)

#defineACL_ALL_RIGHTS_TABLESPACE (ACL_CREATE)

 

 

用户的属性可参见下图:

供访问数据库角色有关信息的接口。 它只是一个 pg_authid 表的公开可读部分的视图,把口令字段用空白填充了。

Table 42-39.pg_roles字段

名字

类型

引用

描述

rolname

name

 

角色名

rolsuper

bool

 

有超级用户权限的角色

rolcreaterole

bool

 

可以创建更多角色的角色

rolcreatedb

bool

 

可以创建数据库的角色

rolcatupdate

bool

 

可以直接更新系统表的角色。(除非这个字段为真,否则超级用户也不能干这个事情。)

rolcanlogin

bool

 

可以登录的角色,也就是说,这个角色可以给予初始化会话认证的标识符。

rolpassword

text

 

不是口令(总是 ********)

rolvaliduntil

timestamptz

 

口令失效日期(只用于口令认证);如果没有失效期,为 NULL

rolconfig

text[]

 

运行时配置变量的会话缺省

linux

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ページにジャンプするパラメータを含む PHP の POST メソッドの簡単な分析 ページにジャンプするパラメータを含む PHP の POST メソッドの簡単な分析 Mar 23, 2023 am 09:15 AM

PHP 開発者にとって、POST を使用してパラメータのあるページにジャンプすることは基本的なスキルです。 POST は HTTP でデータを送信する方法で、HTTP リクエストを通じてサーバーにデータを送信できます。ジャンプ ページはサーバー側でページを処理してジャンプします。実際の開発では、特定の機能上の目的を達成するために、パラメーターを指定して POST を使用してページにジャンプする必要があることがよくあります。

Pythonリクエストポストの使い方 Pythonリクエストポストの使い方 Apr 29, 2023 pm 04:52 PM

Python はブラウザーによるポスト リクエストの送信をシミュレートします importrequests 形式 request.postrequest.post(url,data,json,kwargs)#ポスト リクエストの形式 request.get(url,params,kwargs)#get リクエストと比較して、ポスト リクエストの送信パラメータは次のように分割されますForms ( x-www-form-urlencoded) json (application/json) データ パラメーターは、辞書形式と文字列形式をサポートしています。辞書形式は、 json.dumps() メソッドを使用して、データを有効な JSON 形式の文字列に変換します。このメソッドには、次のものが必要です

投稿が PHP で送信されたかどうかを確認する方法 投稿が PHP で送信されたかどうかを確認する方法 Mar 21, 2023 pm 07:12 PM

PHP は、インタラクティブで動的な Web アプリケーションの作成に使用できる、広く使用されているサーバー側スクリプト言語です。 PHP アプリケーションを開発する場合、通常、フォームを介して処理するためにユーザー入力データをサーバーに送信する必要があります。ただし、フォームデータがPHPで送信されたものであるかどうかを判断する必要がある場合があるので、この記事ではその判断方法を紹介します。

Java はどのようにして http リクエストを開始し、ポストを呼び出してインターフェースを取得するのでしょうか? Java はどのようにして http リクエストを開始し、ポストを呼び出してインターフェースを取得するのでしょうか? May 16, 2023 pm 07:53 PM

1. Java は post インターフェイスを呼び出します 1. Java に付属の URLConnection または HttpURLConnection を使用します 他の jar パッケージをダウンロードする必要はありません URLConnection を呼び出します インターフェイスの応答コードがサーバーによって変更されている場合、応答メッセージは受信できません。応答コードが正しい場合にのみ受信されます。 publicstaticStringsendPost(Stringurl,Stringparam){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newSt を返します。

NGINXリバースプロキシがHTMLページのPOSTリクエストに対して405を返す問題の解決方法 NGINXリバースプロキシがHTMLページのPOSTリクエストに対して405を返す問題の解決方法 May 22, 2023 pm 07:49 PM

以下:server{listen80;listen443ssl;server_namenirvana.test-a.gogen;ssl_certificate/etc/nginx/ssl/nirvana.test-a.gogen.crt;ssl_certificate_key/etc/nginx/ssl/nirvana.test-a.gogen .key;proxy_connect_timeout600;proxy_read_timeout600;proxy_send_timeout600;c

ページにジャンプしてPOSTデータを運ぶPHPを実装する方法 ページにジャンプしてPOSTデータを運ぶPHPを実装する方法 Mar 22, 2024 am 10:42 AM

PHP は Web サイト開発で広く使用されているプログラミング言語であり、ページ ジャンプと POST データの送信は Web サイト開発における一般的な要件です。この記事では、PHP のページジャンプを実装して POST データを運ぶ方法を、具体的なコード例を含めて紹介します。 PHP では、ページ ジャンプは通常、ヘッダー関数を通じて実装されます。ジャンプ プロセス中に POST データを送信する必要がある場合は、次の手順で実行できます。 まず、ユーザーが情報を入力して送信ボタンをクリックするフォームを含むページを作成します。フォーム内のアクティ

PHP コード例: POST を使用してパラメーターを渡し、ページ ジャンプを実装する方法 PHP コード例: POST を使用してパラメーターを渡し、ページ ジャンプを実装する方法 Mar 07, 2024 pm 01:45 PM

タイトル: PHP コード例: POST を使用してパラメーターを渡し、ページ ジャンプを実装する方法 Web 開発では、多くの場合、パラメーターを POST 経由で渡し、サーバー側で処理してページ ジャンプを実装する必要があります。 PHP は、一般的なサーバーサイド スクリプト言語として、この目的を達成するための豊富な関数と構文を提供します。以下では、この機能を PHP を使用して実装する方法を、具体的な例を用いて紹介します。まず、2 つのページを準備する必要があります。1 つは POST リクエストを受信し、パラメーターを処理するためのものです。

PHP でジャンプを実装し、POST データを運ぶ方法の簡単な分析 PHP でジャンプを実装し、POST データを運ぶ方法の簡単な分析 Mar 21, 2023 pm 02:07 PM

PHP は、動的な Web アプリケーションや Web サイトの構築に使用される一般的なサーバー側スクリプト言語です。 PHP では、多くの場合、ページにジャンプしたり、ページ間でデータを転送したりする必要があります。この記事では、PHP でジャンプを実装し、POST データを運ぶ方法について説明します。

See all articles