mysql select_catalog_role_PostgreSQL数据库、表空间、角色及用户

一、创建数据库

1、通过pgAdmin创建数据库TestDb1:

打开数据库TestDb1看到建库脚本:

74b917184c91a1fb7cf1e27a9a313ab0.png

在目录——PostgreSQL(pg_catalog)——数据表——pg_database中可以查看多了一个数据库TestDb1:

select oid,* from pg_database;

37d2caa149d4d8854071796e5fa75493.png

此时,在E:\PostgreSQL\data\base下的文件夹如下:

2eedde08646a4acd60efe04a2c7de52f.png

以上说明,创建的数据库使用默认表空间(pg_default),数据文件夹使用oid命名。

同时,在E:\PostgreSQL\data\local下也会增加一些文件。

注:PostgreSQL的oid:行的对象表示符(对象ID);PostgreSQL的xid:事务ID;

这两个ID都是4字节的整数,在超过40亿时将溢出,此后会出现重复,所以,假设它们唯一是错误的,除非你自己采取了措施来保证它们是唯一的。

2、通过psql命令行创建数据库:

postgres=# create database "TestDb2";

CREATE DATABASE

postgres=#

postgres=# select oid,datname from pg_database;

oid  |  datname

-------+-----------

1 | template1

11905 | template0

11913 | postgres

16393 | TestDb1

16394 | TestDb2

(5 行记录)

从pgAdmin打开,两者建库脚本一样,说明都是使用的默认参数;

二、创建表空间

1、通过pgAdmin创建表空间

创建表空间必须首先建空目录,假设建文件夹:E:\PostgreSQL\data\TestDbs1,建表空间是选择该目录。

打开表空间TestDbs1, 可以看到建表空间脚本:

ddf5406fa173d5f59379f35f7f26836f.png

2、通过psql命令行创建表空间

postgres=# create tablespace "TestDbs2" location 'E:\PostgreSQL\data\TestDbs2';

CREATE TABLESPACE

三、创建角色、用户

角色与用户的区别:

角色就相当于岗位:角色可以是经理,助理。

用户就是具体的人:比如陈XX经理,朱XX助理,王XX助理。

1、通过pgAdmin创建角色

创建角色TestRole1,输入密码,分配权限,需要分配login权限系统才会自动创建同名用户TestRole1。

打开角色TestRole1,可以看到创建角色脚本:

bed929e011672119bd1ab8de527109b5.png

2、通过psql命令行创建角色

postgres=# create role "TestRole2";

CREATE ROLE

postgres=# select rolname from pg_roles;

rolname

-----------

postgres

TestRole1

TestRole2

(3 行记录)

postgres=# select usename from pg_user;

usename

-----------

postgres

TestRole1

(2 行记录)

postgres=# create role "TestRole3" login;

CREATE ROLE

postgres=# select rolname from pg_roles;

rolname

-----------

postgres

TestRole1

TestRole2

TestRole3

(4 行记录)

postgres=# select usename from pg_user;

usename

-----------

postgres

TestRole1

TestRole3

(3 行记录)

角色TestRole2创建时没有分配login权限,所以没有创建用户;在pgAdmin的“登录角色”中看不到,到pg_authid中把rolcanlogin字段由false改为true,系统自动创建同名用户,此时在“登录角色”中才可以看到。

也可以通过sql命令给该角色分配login权限,系统将自动创建同名用户TestRole2:

postgres=# select usename from pg_user;

usename

-----------

postgres

TestRole1

TestRole3

TestRole2

(4 行记录)

TestRole3角色创建时分配了login权限,系统自动创建一个同名的用户TestRole3。

通过psql命令行创建用户

PostgreSQL的create role与create user命令是等效的,只是前者默认是非login的,而后者默认是login的。

postgres=# create user "TestUser11" with password 'TestUser11' login in role "TestRole1";

CREATE ROLE

postgres=# select rolname from pg_roles;

rolname

------------

postgres

TestRole1

TestRole3

TestRole2

TestUser11

(5 行记录)

postgres=# select usename from pg_user;

usename

------------

postgres

TestRole1

TestRole3

TestRole2

TestUser11

(5 行记录)

postgres=# create user "TestUser1";

CREATE ROLE

postgres=# select rolname from pg_roles;

rolname

------------

postgres

TestRole1

TestRole3

TestRole2

TestUser11

TestUser1

(6 行记录)

postgres=# select usename from pg_user;

usename

------------

postgres

TestRole1

TestRole3

TestRole2

TestUser11

TestUser1

(6 行记录)

`pg_bulkload`是一个用于将数据批量加载到PostgreSQL数据库的工具。它允许您将数据文件(如CSV或TSV文件)转换为PostgreSQL可接受的格式,并批量加载到数据库中。以下是使用`pg_bulkload`工具加载数据到PostgreSQL数据库的一般命令: ```php pg_bulkload [选项] 数据文件路径 数据库连接参数 ``` 选项可能包括: * `-h` 或 `--host`:指定主机名或IP地址 * `-p` 或 `--port`:指定端口号 * `-U` 或 `--username`:指定用户名以连接到数据库 * `-d` 或 `--force`:强制覆盖已存在的表 数据文件路径是指包含要加载的数据的文件路径。该文件应该符合PostgreSQL的数据格式要求,例如CSV或TSV文件。 数据库连接参数包括连接字符串,用于指定数据库的详细信息,如主机名、端口号、用户名和密码等。这些参数的具体格式和要求可能会因所使用的PostgreSQL客户端库而异。 使用`pg_bulkload`工具时,您需要先安装和配置PostgreSQL服务器和适当的客户端库,以确保可以连接到数据库并执行加载操作。具体的安装和配置步骤可能因您的操作系统和环境而异。 请注意,为了成功使用`pg_bulkload`工具,您需要具有适当的权限来访问数据文件和数据库连接信息。 以上是使用中文对`pg_bulkload`工具加载数据到PostgreSQL数据库的基本介绍和命令用法。请根据您的实际情况和环境进行适当的调整和配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值