# 一、用户与权限管理 ## 创建role ```sql CREATE USER postgres SUPERUSER; ``` ## 移除超级用户权限 ```sql ALTER ROLE myuser with NOSUPERUSER; ``` ## 创建新用户 ```bash createuser username ``` ## 给用户赋予访问数据库的权限 ```sql -- 整个数据库赋权 tpch1s=# grant all privileges on database tpch1s TO myuser; -- 某个表赋权 tpch1s=# GRANT ALL PRIVILEGES ON lineitem TO myuser; -- 所有表赋权 tpch1s=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO myuser; ``` ## 查询当前登录用户名 ```sql select user; -- 或者 select * from current_user ``` # 二、客户端 ## 显示查询耗时 ```sql /* 显示时间:*/ \timing on /* 关闭时间:*/ \timing off ``` ## .psqlrc ~/.psqlrc在psql客户端连接时,先行执行,所以,可以用于执行初始化操作。 ```sql set enable_vecengine = on; \timing on ``` ## psql使用tab字符 psql客户端默认的tab键行为是自动补全功能,如有从别处复制过来的SQL语句中有tab字符,那么该SQL在psql客户端无法执行,报一些语法错误。 使用 -n 参数可以解决无法输入tab字符问题,例如: ```bash psql -d test -n ``` # 三、配置参数 ## 修改配置参数 临时修改,重新连接客户端或者服务重启后丢失: ```sql set vec_parallel_degree = 8; ``` 永久修改,重启服务也不丢失设置: ```sql alter database tpch set vec_parallel_degree = 8; -- 需要重新连接客户端 ```