PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để đăng nhập và xác thực vào Postgresql sau khi cài đặt mới?

Có hai phương pháp bạn có thể sử dụng. Cả hai đều yêu cầu tạo người dùng một cơ sở dữ liệu.

Theo mặc định psql kết nối với cơ sở dữ liệu có cùng tên với người dùng. Vì vậy, có một quy ước để làm cho "cơ sở dữ liệu của người dùng" . Và không có lý do gì để phá vỡ quy ước đó nếu người dùng của bạn chỉ cần một cơ sở dữ liệu. Chúng tôi sẽ sử dụng mydatabase làm tên cơ sở dữ liệu mẫu.

  1. Sử dụng người tạo và tạob , chúng tôi có thể rõ ràng về tên cơ sở dữ liệu,

    $ sudo -u postgres createuser -s $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    

    Bạn có thể nên bỏ qua hoàn toàn điều đó và để tất cả các lệnh mặc định thành tên của người dùng.

    $ sudo -u postgres createuser -s $USER
    $ createdb
    $ psql
    
  2. Sử dụng các lệnh quản trị SQL và kết nối bằng mật khẩu qua TCP

    $ sudo -u postgres psql postgres
    

    Và, sau đó trong psql shell

    CREATE ROLE myuser LOGIN PASSWORD 'mypass';
    CREATE DATABASE mydatabase WITH OWNER = myuser;
    

    Sau đó, bạn có thể đăng nhập,

    $ psql -h localhost -d mydatabase -U myuser -p <port>
    

    Nếu bạn không biết cổng, bạn luôn có thể lấy nó bằng cách chạy như sau, dưới dạng postgres người dùng,

    SHOW port;
    

    Hoặc,

    $ grep "port =" /etc/postgresql/*/main/postgresql.conf
    

Chú thích bên lề:postgres người dùng

Tôi đề nghị KHÔNG sửa đổi postgres người dùng.

  1. Nó thường bị khóa khỏi hệ điều hành. Không ai phải "đăng nhập" vào hệ điều hành bằng postgres . Bạn phải có root để xác thực là postgres .
  2. Nó thường không được bảo vệ bằng mật khẩu và ủy quyền cho hệ điều hành máy chủ. Đây là một điều tốt . Điều này thường có nghĩa là để đăng nhập bằng postgres tương đương với PostgreSQL của SA của SQL Server , bạn phải có quyền ghi vào các tệp dữ liệu cơ bản. Và, điều đó có nghĩa là bình thường bạn vẫn có thể tàn phá.
  3. Bằng cách tắt tính năng này, bạn loại bỏ nguy cơ bị tấn công vũ lực thông qua một siêu người dùng được đặt tên. Việc che giấu và che giấu tên của siêu người dùng có lợi thế.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào tôi có thể kiểm tra xem một cột tồn tại trong bảng bằng câu lệnh SQL

  2. Công cụ GUI cho PostgreSQL

  3. ~ / .psqlrc tệp cho DBA

  4. Đo điểm chuẩn Giải pháp đám mây PostgreSQL được quản lý - Phần thứ tư:Microsoft Azure

  5. PostgreSQL:Xóa thuộc tính khỏi cột JSON