ホーム>source

SQL Serverの新しいAzureインスタンスを作成しようとしています。このインスタンスで、いくつかの新しいデータベースを作成します。

Azure Portalから、ある種の管理ユーザーが次のようになる可能性があることを知っています。

  • SA ユーザー(これは「サーバー管理者」を意味し、SQL Serverインスタンスを管理する何らかの古い方法のように見えますが、同時に非常に「基本的」で動作することが証明されています)
  • Active Directoryユーザー(ここではAzureの用語についてはわかりませんが、Azure Portalの自分のログインユーザーなど、Azureプラットフォーム全体の「幅広いユーザー」になりそうです。これはデータベースの世界に固有ではありません)。

サーバーを管理するSAユーザーでSQL Serverを作成したいと思います。Azureポータルから、SQL ServerインスタンスのSAユーザーのARMテンプレートを生成する方法が見つかりません

SQLサーバーとデータベースの非常に長いリストの10000行のARMテンプレートからコピーペーストしていますが、基本的な手順を分離して、クリーンで短いARMテンプレートを作成することはできません。

これは、AzureにデプロイしようとしているARMテンプレートです。

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "location": {
          "type": "string",
          "defaultValue": "westeurope"
        },
      "foo_sql_server_name": {
          "defaultValue": "foo-sql-server",
          "type": "String"
      }
    },
    "resources": [
      {
          "type": "Microsoft.Sql/servers",
          "kind": "v12.0",
          "name": "[parameters('foo_sql_server_name')]",
          "apiVersion": "2015-05-01-preview",
          "location": "[parameters('location')]",
          "scale": null,
          "properties": {
              "administratorLogin": "<MY_SA_USER_THAT_I_CAN_NOT_CREATE>",
              "version": "12.0"
          },
          "dependsOn": []
      }
    ]
}

上記を実行する場合:

az group deployment create \
  --name "deployDBs" \
  --resource-group "MyCustomResourceGroup" \
  --template-file ./templates/db.json # --verbose --debug

次に、次のエラーメッセージが表示されます。

Deployment failed. Correlation ID: <A_CUSTOM_GUID>. {
  "status": "Failed",
  "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "InvalidParameterValue",
        "message": "Invalid value given for parameter Password. Specify a valid parameter value."
      }
    ]
  }
}

JSONフィールド administratorLogin を削除する場合  (うまくいけば、私はまだ他のどこかでSAユーザーを作成できるので、まだ理解していません)、次のエラーメッセージが表示されます。

Deployment failed. Correlation ID: <ANOTHER_CUSTOM_GUID>. {
  "status": "Failed",
  "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "InvalidParameterValue",
        "message": "Invalid value given for parameter Login. Specify a valid parameter value."
      }
    ]
  }
}

10000行の自動生成されたARMテンプレートからSAユーザー(サーバー管理者)のペア「ユーザー名パスワード」の定義を見つけることができません。

SQL Serverの新しいインスタンスを展開するときに、SQL ServerのSAユーザーを作成/挿入するにはどうすればよいですか?

あなたの答え
  • 解決した方法 # 1

    オンプレミスのSQL Serverインスタンスで使用するsaログインは、Azure SQLでは管理ログインとして知られています。以下のサンプルテンプレートに示すように、管理者ログインの名前とパスワードをパラメーターとして指定できます。

    {
      "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "yourservernameName": {
          "type": "string",
          "defaultValue": "yourservername2"
        },
        "yourservernameAdminLogin": {
          "type": "string",
          "defaultValue": "VeryWiseAdmin",
          "minLength": 1
        },
        "yourservernameAdminLoginPassword": {
          "type": "securestring",
          "defaultValue": "ReplaceWithTheMostSecurePasswordThatEverExisted&NeverShareLikeThisWithAnyone!"
        },
        "dbnameName": {
          "type": "string",
          "defaultValue": "dbname",
          "minLength": 1
        },
        "dbnameCollation": {
          "type": "string",
          "minLength": 1,
          "defaultValue": "SQL_Latin1_General_CP1_CI_AS"
        },
        "dbnameEdition": {
          "type": "string",
          "defaultValue": "Basic"
        },
        "dbnameRequestedServiceObjectiveName": {
          "type": "string",
          "defaultValue": "Basic"
        }
      },
      "variables": {
      },
      "resources": [
        {
          "name": "[parameters('yourservernameName')]",
          "type": "Microsoft.Sql/servers",
          "location": "West Europe",
          "apiVersion": "2014-04-01-preview",
          "dependsOn": [],
          "tags": {
            "displayName": "yourservername"
          },
          "properties": {
            "administratorLogin": "[parameters('yourservernameAdminLogin')]",
            "administratorLoginPassword": "[parameters('yourservernameAdminLoginPassword')]",
            "version": "12.0"
          },
          "resources": [
            {
              "name": "[concat(parameters('yourservernameName'),'/AllowAllWindowsAzureIps')]",
              "type": "Microsoft.Sql/servers/firewallRules",
              "location": "[resourceGroup().location]",
              "apiVersion": "2014-04-01-preview",
              "dependsOn": [
                "[resourceId('Microsoft.Sql/servers', parameters('yourservernameName'))]"
              ],
              "properties": {
                "startIpAddress": "0.0.0.0",
                "endIpAddress": "0.0.0.0"
              }
            },
            {
              "name": "[concat(parameters('yourservernameName'),'/',parameters('dbnameName'))]",
              "type": "Microsoft.Sql/servers/databases",
              "location": "West Europe",
              "apiVersion": "2014-04-01-preview",
              "dependsOn": [
                "[resourceId('Microsoft.Sql/servers', parameters('yourservernameName'))]"
              ],
              "tags": {
                "displayName": "dbname"
              },
              "properties": {
                "collation": "[parameters('dbnameCollation')]",
                "edition": "[parameters('dbnameEdition')]",
                "maxSizeBytes": "1073741824",
                "requestedServiceObjectiveName": "[parameters('dbnameRequestedServiceObjectiveName')]"
              }
            }
          ]
        }
      ],
      "outputs": {
        "SomeString": {
          "type": "string",
          "value": "What ever you want to put here"
        },
        "ServerNameParam": {
          "type": "string",
          "value": "[parameters('yourservernameName')]"
        },
        "ServerResourceID": {
          "type": "string",
          "value": "[resourceId('Microsoft.Sql/servers', parameters('yourservernameName'))]"
        },
        "ServerObject": {
          "type": "object",
          "value": "[reference(parameters('yourservernameName'))]"
        },
        "SqlServerURL": {
          "type": "string",
          "value": "[reference(parameters('yourservernameName')).fullyQualifiedDomainName]"
        },
        "DbResourceID": {
          "type": "string",
          "value": "[resourceId('Microsoft.Sql/servers/databases', parameters('yourservernameName'), parameters('dbnameName'))]"
        },
        "DbObject": {
          "type": "object",
          "value": "[reference(parameters('dbnameName'))]"
        },
        "DbAdoConnString": {
          "type": "string",
          "value": "[concat('Server=tcp:',reference(parameters('yourservernameName')).fullyQualifiedDomainName,',1433;Initial Catalog=',parameters('dbnameName'),';Persist Security Info=False;User ID=',reference(parameters('yourservernameName')).administratorLogin,';Password=',reference(parameters('yourservernameName')).administratorLoginPassword,';MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;')]"
        }
      }
    }
    
    

  • 解決した方法 # 2

    作業サンプル:

    "name": "name",
    "type": "Microsoft.Sql/servers",
    "location": "[resourceGroup().location]",
    "apiVersion": "2014-04-01",
    "properties": {
        "administratorLogin": "somelogin",
        "administratorLoginPassword": "somepasswordD1!"
    }
    
    

    その SA に注意してください  ユーザー名とパスワードには複雑さの要件があるため、許可されない場合があります

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ html - バックグラウンドでIEを使用してURLをスクレイピングする:IEプロセスを終了する方法は?