Advertisement
Guest User

Untitled

a guest
Apr 10th, 2020
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ni ➜ ~ createdb IB_lab_5
  2. ni ➜ ~ psql -U postgres -d IB_lab_5
  3. psql (11.5)
  4. Введите "help", чтобы получить справку.
  5.  
  6. IB_lab_5=# CREATE USER lab_super_user WITH ENCRYPTED PASSWORD 'secret';
  7. CREATE ROLE
  8. IB_lab_5=# CREATE USER lab_readonly_user WITH ENCRYPTED PASSWORD 'secret';
  9. CREATE ROLE
  10. IB_lab_5=# CREATE USER lab_write_user WITH ENCRYPTED PASSWORD 'secret';
  11. CREATE ROLE
  12. IB_lab_5=# GRANT ALL PRIVILEGES ON DATABASE IB_lab_5 TO lab_super_user;
  13. GRANT
  14. IB_lab_5=# GRANT CONNECT ON DATABASE IB_lab_5 TO lab_readonly_user;
  15. GRANT
  16. IB_lab_5=# GRANT USAGE ON SCHEMA public TO lab_readonly_user;
  17. GRANT
  18. IB_lab_5=# GRANT SELECT ON ALL TABLES IN SCHEMA public TO lab_readonly_user;
  19. GRANT
  20. IB_lab_5=# GRANT CONNECT ON DATABASE IB_lab_5 TO lab_write_user;
  21. GRANT
  22. IB_lab_5=# GRANT USAGE ON SCHEMA public TO lab_write_user;
  23. GRANT
  24. IB_lab_5=# CREATE TABLE account(
  25. IB_lab_5(# user_id serial PRIMARY KEY,
  26. IB_lab_5(# username VARCHAR (50) UNIQUE NOT NULL,
  27. IB_lab_5(# password VARCHAR (50) NOT NULL
  28. IB_lab_5(# )
  29. IB_lab_5-# ;
  30. CREATE TABLE
  31. IB_lab_5=# GRANT SELECT ON account TO lab_write_user;
  32. GRANT
  33. IB_lab_5=# GRANT INSERT ON account TO lab_write_user;
  34. GRANT
  35. # TEST WRITE FROM SUPERUSER
  36. IB_lab_5=# SET ROLE lab_write_user;
  37. SET
  38. IB_lab_5=> INSERT INTO account VALUES(1, 'user', 'pass');
  39. INSERT 0 1
  40. # TEST READ AND WRITE FROM SUPERUSER
  41. IB_lab_5=> SET ROLE lab_readonly_user;
  42. SET
  43. IB_lab_5=> INSERT INTO account VALUES(1, 'user', 'pass');
  44. ERROR:  permission denied for table account
  45. IB_lab_5=> SELECT * FROM account;
  46.  user_id | username | password
  47. ---------+----------+----------
  48.        1 | user     | pass
  49. (1 строка)
  50. # TEST CREATE TABLE FROM SUPERUSER
  51. IB_lab_5=> SET ROLE lab_super_user;
  52. SET
  53. IB_lab_5=> CREATE TABLE test(
  54. id serial PRIMARY KEY,
  55. value VARCHAR (50) UNIQUE NOT NULL
  56. );
  57. CREATE TABLE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement