## 以管理员身份 postgres 登陆,然后通过
#psql -U postgres
#sudo -i -u postgres
$ psql xc_hzh_linan #登录xc_hzh_linan数据库
$ psql -U postgres test #以postgres用户身份,登录test数据库
psql -h localhost -p 5432 -U postgress testdb
使用反斜线作为命令前缀.
退出 \q 列出所有的数据库 \l 列出所有的数据库的大小 \l+ 更改当前连接的数据库 \c 列出当前数据库的连接信息 \connect 列出当前数据库和连接的详细信息 \conninfo 查看当前数据库里面的表和拥有者和表大小 \dt + 展示所有用户 \dg
查看所有表名的列表 \d 获取表结构 \d a 展示所有用户 \du 查看t_sms表的结构 \d t_sms 展示数据库里面的所有的表 \dt 列出所有的数据库的详细信息(包括数据库大小和字符格式) \l+ 显示用户访问权限。 \z或\dp 显示所有可设置的访问权限 \h GRAN 显示用户的对所有数据库表的详细访问权限 \dp或者\z 确认当前连接的用户为超级用户postgres,且该用户后创建角色和数据库的权限等 #select current_user; 在超级用户连接postgres后,设置不允许普通用户a连接数据库 #alter role a nologin;
使用普通用户a连接数据库正常 #\c highgo a
查看当前连接的用户名: foo=#select * from current_user; 或 foo=#select user;
查看所有用户名: foo=#\du
create role zhaobsh;
create user wzq with password '123456'; #设置用户,并设置密码
create database xc_hzh_linan owner xchzhlinan ; #创建数据库以及所属用户
drop user runoob; # 删除用户 runoob
alter role zhaobsh with password 'Test6530';
or
\password zhaobsh
ALTER USER postgres WITH PASSWORD 'postgres';
-----
注:
密码postgres要用引号引起来
命令最后有分号
----
授权给用户**
要做操作需登录这个用户,不然没权限 他是管理员用户
alter user asan with SUPERUSER; # 类似postgres的SUPERUSER 权限用户
#
grant all on database "GSCloud1903" to zhaobsh; #赋予用户zhaobsh数据库所有权限
grant UPDATE ON database "GSCloud1903" to zhaobsh; # 赋予用户zhaobsh数据库更新权限
/* 赋给用户表的所有权限 */
GRANT ALL ON tablename TO user;
/* 赋给用户数据库的所有权限 */
GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser;
/* 撤销用户权限 */
REVOKE privileges ON tablename FROM user;
### 修改数据库的属主属组
alter database "GSCloud1903" owner to zhaobsh;
ALTER ROLE user_4 WITH CREATEROLE; /*赋予创建角色的权限*/
alter database "GSCloud1903" rename to zhaobsh; --修改schema的名称
# \L
postgres=# drop database test;
#如果数据库名称中包含符号-,则用双引号包括数据库名称
postgres=# drop database "test-study";
postgres# select current_database();
postgres# \c db
CREATE DATABASE dbname;
postgres=# create database dbtest owner username; -- 创建数据库指定所属者
CREATE DATABASE
将数据库得权限,全部赋给某个用户
postgres=# grant all on database dbtest to username; -- 将dbtest所有权限赋值给username
设置是 supseruser 以及 登录权限
alter user zhaobsh superuser login
postgres# \q
数据表
# \d
postgres# \d tableName
seelect * from tablename;
------------------------数据的导出:
$ pg_dump -U postgres(用户名) (-t 表名) 数据库名(缺省时同用户名) > 路径/文件名.sql
postgres@debian:~$ pg_dump -U postgres -t system_calls wangye > ./test.sql
postgres@debian:~$ ls
9.1 test.sql
-----------------------数据的导入:
导入数据时首先创建数据库再用psql导入:
$ createdb newdatabase
$ psql -d newdatabase -U postgres -f mydatabase.sql // sql 文件在当前路径下
$ psql -d databaename(数据库名) -U username(用户名) -f < 路径/文件名.sql // sql 文件不在当前路径下
$ su postgresql #切换到psql用户下
$ psql -d wangye -U postgres -f system_calls.sql # sql 文件在当前路径下
INSERT 0 1
INSERT 0 1
INSERT 0 1