在此记录一些Postgresql中,经常用到的创建数据库,用户角色及表,授权等命令的使用示例,方便用到时的快捷参考!
数据库的初始化与创建
1 . 初始化一个数据库簇
这里指对对一个文件系统目录进行初始化操作,然后一个单体数据库服务便会管理这个目录,之后我们连接到这个单体数据库服务上进行建库,建表等操作所产生的一切数据都会放到这个目录下面!
1>(方式一): pg_ctl -D /usr/local/pgsql/data initdb 详情
2>(方式二): initdb -D /usr/local/pgsql/data 详情
3> 具体操作:
mkdir /usr/local/pgsql
chown postgres /usr/local/pgsql
su postgres
initdb -D /usr/local/pgsql/data
2 . 创建角色,并且赋予该角色创建数据库,创建角色,并且可以登陆的权限 详情
CREATE ROLE admin with LOGIN CREATEDB CREATEROLE PASSWORD 'welcome';
CREATE USER hello_user PASSWORD 'welcome';
CREATE DATABASE hello_db owner hello_user ENCODING = 'UTF-8';
5 . 使用对应的用户切换到要操作的数据库上面,然后再设置所要操作的schema(默认每个数据库初始都有一个名为public的schema);
\c hello_db hello_user
SET search_path TO public;
6 . 创建自己的业务schema,并在其上面建立自己的一张新表,插入数据 ;
CREATE schema test;
SET search_path TO test;
CREATE TABLE tb_test ( id serial,t_name character varying(24) NOT NULL,CONSTRAINT tb_score_id PRIMARY KEY (id),CONSTRAINT tb_score_unq_name UNIQUE (t_name) );
\dt
\d tb_test
insert into tb_test (t_name) values ('hinsteny'),('hisoka');
select * from tb_test;
explain analyse select count(id) from tb_test;
备注: 在PG中,可以简单的使用user就可以操作database了,然后role的作用既可以当user用也可以用作group,它有角色权限继承的功能;