切换用户
本机切换到数据库自动创建的用户
su - postgres
进入数据库命令
```Plain Text
以-U后面接的用户登录
root@kali:~# psql -U postgres -h 127.0.0.1
然后命令行会变化为:
```bash
root@kali:~# su - postgres
postgres@kali:~$ psql
psql (9.4.6)
输入 "help" 来获取帮助信息.
postgres=#
创建用户
postgres=# create user test with password 'test';
CREATE ROLE
创建数据库
postgres=# create database testdb owner test;
CREATE DATABASE
删除数据库
```Plain Text -- 删除数据库 pro_1217 drop database pro_1217;
### 授权
```bash
postgres=# grant all privileges on database testdb to test;
GRANT
退出
postgres=# \q
断开已连的数据库
-- 断开连接数据库:pro_1217 的所有连接
-- 注意:不能在pro_1217中执行,需要切换到其他schema
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE datname = 'pro_1217'
AND pid <> pg_backend_pid();
删除数据库中的表
-- 删除当前shchema下的所有表
DO
$$
DECLARE
r RECORD;
BEGIN
-- 只删除表,不删除其他
-- 放在要删除的表的库的shcema下
-- 如果是用单行执行的客户端工具,记得全选整个语句才能执行,单行执行会报语法错误。
FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = current_schema())
LOOP
EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE';
END LOOP;
END
$$;