PostgreSQL的用户、角色和权限管理
PostgreSQL权限分为两部分,一部分是ldquo;系统权限rdquo;或者数据库用户的属性,可以授予role或user(两者区别在于login权限)
);一部分为数据库对象上的操作权限。对超级用户不做权限检查,其它走acl。对于数据库对象,开始只有所有者和超级用户可以做任何操作,其它走acl。。
可以用下面的命令创建和删除角色,
CREATE ROLE name;
DROP ROLE name;
为了方便,也可以在 shell 命令上直接调用程序 createuser 和 dropuser,这些工具对相应命令提供了封装:
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[]
运行时配置变量的会话缺省

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Python simuliert den Browser, der Post-Anfragen im Importrequests-Format sendet request.postrequest.post(url,data,json,kwargs)#Post-Anforderungsformat request.get(url,params,kwargs)#Im Vergleich zur Get-Anfrage sind die Parameter für das Senden von Post-Anfragen unterteilt Der Datenparameter „forms“ (x-www-form-urlencoded) unterstützt das Wörterbuchformat und das Zeichenfolgenformat. Das Wörterbuchformat verwendet die Methode json.dumps(), um die Daten in eine Zeichenfolge im legalen JSON-Format zu konvertieren

Für PHP-Entwickler ist die Verwendung von POST zum Springen zu Seiten mit Parametern eine grundlegende Fähigkeit. POST ist eine Methode zum Senden von Daten in HTTP. Sie kann Daten über HTTP-Anfragen an den Server senden und die Seite auf der Serverseite überspringen. In der tatsächlichen Entwicklung müssen wir häufig POST mit Parametern verwenden, um zu Seiten zu springen und bestimmte funktionale Zwecke zu erreichen.

PHP ist eine weit verbreitete serverseitige Skriptsprache, mit der interaktive und dynamische Webanwendungen erstellt werden können. Bei der Entwicklung von PHP-Anwendungen müssen wir normalerweise Benutzereingabedaten zur Verarbeitung über Formulare an den Server übermitteln. Manchmal müssen wir jedoch feststellen, ob Formulardaten in PHP übermittelt wurden. In diesem Artikel erfahren Sie, wie Sie eine solche Feststellung treffen.

1. Java ruft die Post-Schnittstelle auf. 1. Verwenden Sie URLConnection oder HttpURLConnection. Es ist nicht erforderlich, andere JAR-Pakete herunterzuladen. Rufen Sie URLConnection auf kann nur empfangen werden, wenn der Antwortcode korrekt ist, um publicstaticStringsendPost(Stringurl,Stringparam){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newSt zurückzugeben

实现如下: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

PHP ist eine in der Website-Entwicklung weit verbreitete Programmiersprache, und Seitensprünge und die Übertragung von POST-Daten sind häufige Anforderungen bei der Website-Entwicklung. In diesem Artikel wird erläutert, wie PHP-Seitensprünge implementiert und POST-Daten übertragen werden, einschließlich spezifischer Codebeispiele. In PHP werden Seitensprünge im Allgemeinen über die Header-Funktion implementiert. Wenn Sie POST-Daten während des Sprungvorgangs übertragen müssen, können Sie dies mit den folgenden Schritten tun: Erstellen Sie zunächst eine Seite mit einem Formular, auf dem der Benutzer die Informationen ausfüllt und auf die Schaltfläche „Senden“ klickt. Acti im Formular

Titel: PHP-Codebeispiel: So verwenden Sie POST zur Übergabe von Parametern und zur Implementierung von Seitensprüngen. In der Webentwicklung ist es häufig erforderlich, Parameter über POST zu übergeben und sie auf der Serverseite zu verarbeiten, um Seitensprünge zu implementieren. PHP als beliebte serverseitige Skriptsprache bietet eine Fülle von Funktionen und Syntax, um diesen Zweck zu erreichen. Im Folgenden wird anhand eines praktischen Beispiels erläutert, wie PHP zum Implementieren dieser Funktion verwendet wird. Zuerst müssen wir zwei Seiten vorbereiten, eine für den Empfang von POST-Anfragen und Prozessparametern

PHP ist eine beliebte serverseitige Skriptsprache, die zum Erstellen dynamischer Webanwendungen und Websites verwendet wird. In PHP ist es oft notwendig, zu Seiten zu springen und Daten seitenübergreifend zu übertragen. In diesem Artikel wird erläutert, wie Sprünge implementiert und POST-Daten in PHP übertragen werden.
