Rumah pangkalan data tutorial 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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan pos permintaan python Cara menggunakan pos permintaan python Apr 29, 2023 pm 04:52 PM

Python mensimulasikan penyemak imbas menghantar permintaan kiriman importrequests format request.postrequest.post(url,data,json,kwargs)#post request format request.get(url,params,kwargs)#Berbanding dengan permintaan get, menghantar parameter permintaan pos dibahagikan kepada parameter data forms ( x-www-form-urlencoded) json (application/json) menyokong format kamus dan format rentetan Format kamus menggunakan kaedah json.dumps() untuk menukar data kepada rentetan format json yang sah

Analisis ringkas kaedah POST dalam PHP dengan parameter untuk melompat ke halaman Analisis ringkas kaedah POST dalam PHP dengan parameter untuk melompat ke halaman Mar 23, 2023 am 09:15 AM

Untuk pembangun PHP, menggunakan POST untuk melompat ke halaman dengan parameter adalah kemahiran asas. POST ialah kaedah menghantar data dalam HTTP Ia boleh menghantar data ke pelayan melalui permintaan HTTP Lompat halaman memproses dan melompat halaman pada bahagian pelayan. Dalam pembangunan sebenar, kita sering perlu menggunakan POST dengan parameter untuk melompat ke halaman untuk mencapai tujuan fungsi tertentu.

Bagaimana untuk menentukan sama ada siaran telah dihantar dalam PHP Bagaimana untuk menentukan sama ada siaran telah dihantar dalam PHP Mar 21, 2023 pm 07:12 PM

PHP ialah bahasa skrip bahagian pelayan yang digunakan secara meluas yang boleh digunakan untuk mencipta aplikasi web yang interaktif dan dinamik. Apabila membangunkan aplikasi PHP, kami biasanya perlu menyerahkan data input pengguna ke pelayan untuk diproses melalui borang. Walau bagaimanapun, kadangkala kita perlu menentukan sama ada data borang telah diserahkan dalam PHP Artikel ini akan memperkenalkan cara membuat penentuan sedemikian.

Bagaimanakah java memulakan permintaan http dan memanggil siaran dan mendapatkan antara muka? Bagaimanakah java memulakan permintaan http dan memanggil siaran dan mendapatkan antara muka? May 16, 2023 pm 07:53 PM

1. Java calls post interface 1. Gunakan URLConnection atau HttpURLConnection yang disertakan dengan java Tidak perlu memuat turun pakej jar lain Jika kod respons antara muka diubah oleh pelayan, mesej kembali tidak boleh diterima hanya diterima apabila kod respons adalah betul untuk mengembalikan publicstaticStringsendPost(Stringurl,Stringparam){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newSt.

Bagaimana untuk menyelesaikan masalah bahawa proksi terbalik NGINX mengembalikan 405 untuk permintaan POST halaman HTML Bagaimana untuk menyelesaikan masalah bahawa proksi terbalik NGINX mengembalikan 405 untuk permintaan POST halaman HTML May 22, 2023 pm 07:49 PM

实现如下:pelayan{listen80;listen443ssl;server_namenirvana.test-a.gogen;ssl_certificate/etc/nginx/ssl/nirvana.test-a.gogen.crt;ssl_certificate_key/etc/nginx.s.gentestl .key;proxy_connect_timeout600;proxy_read_timeout600;proxy_send_timeout600;c

Bagaimana untuk melaksanakan PHP untuk melompat ke halaman dan membawa data POST Bagaimana untuk melaksanakan PHP untuk melompat ke halaman dan membawa data POST Mar 22, 2024 am 10:42 AM

PHP ialah bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan laman web, dan lompat halaman dan membawa data POST adalah keperluan biasa dalam pembangunan laman web. Artikel ini akan memperkenalkan cara melaksanakan lompat halaman PHP dan membawa data POST, termasuk contoh kod khusus. Dalam PHP, lompatan halaman biasanya dilaksanakan melalui fungsi pengepala. Jika anda perlu membawa data POST semasa proses lompatan, anda boleh melakukannya melalui langkah berikut: Pertama, buat halaman yang mengandungi borang, di mana pengguna mengisi maklumat dan mengklik butang hantar. Acti dalam borang

Contoh kod PHP: Cara menggunakan POST untuk lulus parameter dan melaksanakan lompatan halaman Contoh kod PHP: Cara menggunakan POST untuk lulus parameter dan melaksanakan lompatan halaman Mar 07, 2024 pm 01:45 PM

Tajuk: Contoh kod PHP: Cara menggunakan POST untuk lulus parameter dan melaksanakan lompatan halaman Dalam pembangunan web, ia selalunya melibatkan keperluan untuk lulus parameter melalui POST dan memprosesnya di bahagian pelayan untuk melaksanakan lompatan halaman. PHP, sebagai bahasa skrip sebelah pelayan yang popular, menyediakan pelbagai fungsi dan sintaks untuk mencapai tujuan ini. Berikut akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi ini melalui contoh praktikal. Pertama, kita perlu menyediakan dua halaman, satu untuk menerima permintaan POST dan parameter proses

Analisis ringkas tentang cara melaksanakan lompatan dan membawa data POST dalam PHP Analisis ringkas tentang cara melaksanakan lompatan dan membawa data POST dalam PHP Mar 21, 2023 pm 02:07 PM

PHP ialah bahasa skrip sebelah pelayan yang popular digunakan untuk membina aplikasi web dan tapak web dinamik. Dalam PHP, selalunya perlu untuk melompat ke halaman dan memindahkan data merentas halaman. Artikel ini akan membincangkan cara melaksanakan lompatan dan membawa data POST dalam PHP.

See all articles