Article Directory
1. Link to the database
- Order
/# PGPASSWORD=liubei@161 psql -U liubei -d xishu
Of course, you can also enter the password interactively
psql -U liubei -d xishu
- output
psql (13.8 (Debian 13.8-1.pgdg110+1))
Type "help" for help.
xishu=#
2. Library operation
2.1 Create library
xishu=# create database jing_zhou;
CREATE DATABASE
2.2 View database
- Order
xishu=# \l
- output
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+--------+----------+------------+------------+-------------------
jing_zhou | liubei | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | liubei | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | liubei | UTF8 | en_US.utf8 | en_US.utf8 | =c/liubei +
| | | | | liubei=CTc/liubei
template1 | liubei | UTF8 | en_US.utf8 | en_US.utf8 | =c/liubei +
| | | | | liubei=CTc/liubei
xishu | liubei | UTF8 | en_US.utf8 | en_US.utf8 |
(5 rows)
The database we created can be seen above
jing_zhou
2.3 Switch database
- Order
xishu=# \c jing_zhou;
- output
You are now connected to database "jing_zhou" as user "liubei".
2.4 Modify the library name
xishu=# alter database jing_zhou rename to new_jing_zhou;
2.5 Delete the database
xishu=# drop database new_jing_zhou;
3. Table operation
3.1 Create table
- Order
CREATE TABLE users(
ID INT PRIMARY KEY NOT NULL,
name CHAR(50) NOT NULL,
mail CHAR(50),
phone CHAR(50)
);
3.2 view table list
- Order
xishu=# \d
- output
List of relations
Schema | Name | Type | Owner
--------+---------+-------+--------
public | users | table | liubei
(2 rows)
3.3 Delete table
xishu=# drop table users;
4. Data manipulation
4.1 Insert data
INSERT INTO users (ID,name,mail)
VALUES (1,'guanYu','[email protected]');
4.2 Query data
xishu=# select * from users;
- output
id | name | mail | phone
----+----------------------------------------------------+----------------------------------------------------+-------
1 | guanYu | guanyu@xishu.com |
4.3 Delete data
delete from users where name='guanYu';
5. Users & Permissions
CREATE USER
andREATE ROLE
the differenceCREATE USER
:defaultLOGIN
CREATE ROLE
:defaultNOLOGIN
5.1 Create user
- Create user and add password
CREATE USER guanyu PASSWORD 'guanyu@123456';
or
CREATE ROLE guanyunchang LOGIN PASSWORD 'guanyu@123456';
- Create an admin user
CREATE USER kongming SUPERUSER PASSWORD 'kongming@123456';
- Create a user who can create databases
CREATE USER pangtong CREATEDB;
- Create a user who can create tables
CREATE USER pangtong CREATETABLE;
- Create a user that can create users
CREATE USER fazheng CREATEROLE;
5.2 View users
- Order
SELECT * FROM pg_roles;
- output
rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcanlogin | rolreplication | rolconnlimit | rolpassword | rolvaliduntil | rolbypassrls | rolconfig | oid
---------------------------+----------+------------+---------------+-------------+-------------+----------------+--------------+-------------+---------------+--------------+-----------+-------
pg_signal_backend | f | t | f | f | f | f | -1 | ******** | | f | | 4200
pg_read_server_files | f | t | f | f | f | f | -1 | ******** | | f | | 4569
guanyu | f | t | f | f | t | f | -1 | ******** | | f | | 16403
liubei | t | t | t | t | t | t | -1 | ******** | | t | | 10
pg_write_server_files | f | t | f | f | f | f | -1 | ******** | | f | | 4570
pg_execute_server_program | f | t | f | f | f | f | -1 | ******** | | f | | 4571
fazheng | f | t | t | f | t | f | -1 | ******** | | f | | 16406
pg_read_all_stats | f | t | f | f | f | f | -1 | ******** | | f | | 3375
pg_monitor | f | t | f | f | f | f | -1 | ******** | | f | | 3373
guanyunchang | f | t | f | f | t | f | -1 | ******** | | f | | 16407
pangtong | f | t | f | t | t | f | -1 | ******** | | f | | 16405
pg_read_all_settings | f | t | f | f | f | f | -1 | ******** | | f | | 3374
pg_stat_scan_tables | f | t | f | f | f | f | -1 | ******** | | f | | 3377
kongming | t | t | f | f | t | f | -1 | ******** | | f | | 16404
(14 rows)
5.3 Delete user
drop user guanyunchang ;
5.4 Modify user name
- Order
ALTER USER guanyu RENAME TO guanyunchang;
- output
NOTICE: MD5 password cleared because of role rename
ALTER ROLE
As can be seen above, the password is cleared.
5.5 Change password
- Order
ALTER USER guanyunchang PASSWORD 'guanyunchang@123456';
5.6 Permission recovery
I won’t expand and write here, it can correspond to the permissions when creating users
ALTER ROLE fazheng NOCREATEDB ;
6. User table permissions
SELECT
、INSERT
、UPDATE
、DELETE
、TRUNCATE
、REFERENCES
、TRIGGER
、CREATE
、CONNECT
、TEMPORARY
、EXECUTE
、USAGE
6.1 Add table permissions for users
- Add user table permissions
Give user Guan Yunchang permission to modify the user table
GRANT UPDATE ON users TO guanyunchang;
- View permissions for all users
Give all users permission to view the users table
GRANT SELECT ON users TO PUBLIC;
- Give the user all permissions
Grant all permissions to the user Guan Yunchang user table
GRANT ALL ON users TO guanyunchang;
6.2 Reclaim User Table Permissions
REVOKE DELETE ON users FROM guanyunchang ;