在此记录一些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';
3 . 创建用户, 并设置对应用户密码
CREATE USER hello_user PASSWORD 'welcome';
4 . 创建数据库, 并使该数据库属于上面创建的用户
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, 它有角色权限继承的功能;