terraform-provider-mssql
terraform-provider-mssql copied to clipboard
Why the "server" block instead of using provider authentication?
I was wondering what the reasoning is for logging into the SQL Server via the "server" block within the resource specs? This is the first time that I have seen a terraform provider do it like this and was wondering if there is a specific reason for this.
To be clear what I mean, instead of passing the authentication information via the resource itself, I would have expected to instead initialise the provider with it, thereby establishing a session that is used by all resources thereafter. I.e., something that looks like this:
terraform {
required_providers {
mssql = {
source = "betr-io/mssql"
version = "0.2.5"
}
}
}
provider "mssql" {
host = "example-sql-server.database.windows.net"
azure_login {
tenant_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
client_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
client_secret = "terriblySecretSecret"
}
}
resource "mssql_login" "example" {
login_name = "testlogin"
password = "verysecret"
}
resource "mssql_login" "example2" {
login_name = "testlogin2"
password = "veryverysecret"
}