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 và 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.
-
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
-
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.
- 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
. - 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ủaSA
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á. - 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ế.