1.创建数据库:
CREATE DATABASE "db001" WITH ENCODING='UTF8' CONNECTION LIMIT=100 TABLESPACE=pg_default;
2.创建数据表:
create table "db001.table001"(id numeric(12) PRIMARY KEY, phone numeric(12) UNIQUE NOT NULL, name varchar UNIQUE NOT NULL, password text NOT NULL, mail text UNIQUE NOT NULL);
3.账号查看:
cat /etc/passwd,postgre会自动创建用于访问db的linux账号;
su切换到对应账号,即可通过#psql操作数据库。
4.命令行操作:
\?:查看帮助
\q:退出命令行
\d:显示数据库中所有数据表(+t显示非系统表)
\d tablename:显示当前表结构
\d+:多出size和描述
\db:显示所有表空间
\du:显示数据库所有用户
\i file:执行文件中的sql语句
\c dbname:切换数据库
cd 路径:切换路径
\l:列出所有数据库
5.创建用户:
CREATE USER dbuser WITH PASSWORD 'dbuser';
6.修改用户密码:
Alter user postgres with password '123456';
7.创建有所属的数据库:
CREATE DATABASE exampledb OWNER dbuser;
7.改变数据库所有者:
GRANT ALL PRIVILEGES ON DATABASE exampledb TO dbuser;
8.本地连接数据库:
如果/var/lib/pgsql/9.6/data/pg_hba.conf设置local连接认证为peer,则免密:
#psql
9.远程连接数据库:
psql -h ip之地 -d 数据库 -U 用户名
10.用户组管理:
创建用户,create role role_emp;
查看用户,select rolname from pg_roles;
修改用户,alter role 用户名1 rename to 用户名2;
删除用户,drop role 用户名;
登录权限,create role 用户名 login;
超级用户,create role 用户名 superuser;
可建数据库, create role 用户名 createdb;
可建用户,create role 用户名 createrole;
建密码用户,create role 用户名 password '密码';
CREATE USER与ROLE,区别,默认有登录权限;
删除用户,drop user 用户名 ;
修改密码,alter user 用户名 password '密码';
给用户授权,alter role 用户名 权限1(createdb),权限2,...
给用户去权,alter role 用户名 nocreatedb nocreaterole;
11.DB权限管理:
修改数据库的拥有者,alter database 数据库名称 owner to 拥有者名字;
增加用户的数据表权限,grant 权限 on 数据表 to 用户名;