31 lines
748 B
Terraform
31 lines
748 B
Terraform
|
resource "random_password" "password" {
|
||
|
length = 16
|
||
|
special = true
|
||
|
override_special = "$*()=+[]{}<>?"
|
||
|
}
|
||
|
|
||
|
resource "postgresql_role" "user" {
|
||
|
name = var.username
|
||
|
password = random_password.password.result
|
||
|
login = true
|
||
|
}
|
||
|
|
||
|
resource "postgresql_database" "database" {
|
||
|
name = var.database_name
|
||
|
template = "template0"
|
||
|
encoding = "UTF8"
|
||
|
lc_collate = var.collate
|
||
|
lc_ctype = var.ctype
|
||
|
connection_limit = -1
|
||
|
|
||
|
allow_connections = true
|
||
|
}
|
||
|
|
||
|
resource "postgresql_grant" "readonly_tables" {
|
||
|
database = postgresql_database.database.name
|
||
|
role = postgresql_role.user.name
|
||
|
schema = var.schema
|
||
|
object_type = "database"
|
||
|
privileges = var.privileges
|
||
|
}
|