public override void Pre_CreateOrUpgradePlatform() { NormalizeAllUsers(); var elevated = (IElevatedUserConfiguration)uiConfiguration; var masterElevated = ConfigurationManagerUtils.ConfigurationToMaster(elevated); var runtimeElevated = (RuntimeDatabaseConfiguration)elevated.ElevatedRuntimeDatabaseConfiguration(); bool isAzureDB = ConfigurationManagerUtils.IsDatabaseAzure(masterElevated); if (isAzureDB) { // On the unlikely scenario of an on-premise installation with Azure SQL, // we try to minimise the chance of timeouts. ConfigurationManagerUtils.QueryTimeout = 300; } ConfigurationManagerUtils.CheckIfUserHasNecessaryElevatedPermissions(masterElevated); if (!isAzureDB) { ConfigurationManagerUtils.CreateSqlServerCatalogIfDoesntExist(masterElevated, runtimeElevated.Catalog); } else { // We will not support automatically creating Azure databases. // An appropriate message is displayed. ConfigurationManagerUtils.CheckIfAzureDatabaseExists(masterElevated, runtimeElevated.Catalog); } ConfigurationManagerUtils.GrantUserPermissions((PlatformDatabaseConfiguration)uiConfiguration); ConfigurationManagerUtils.AddHubLogRole(runtimeElevated); }
public override void Pre_CreateOrUpgradeSession() { NormalizeWindowsUser(); var elevated = (IElevatedUserConfiguration)sessionConfiguration; var masterElevated = ConfigurationManagerUtils.ConfigurationToMaster(elevated); var runtimeElevated = (RuntimeDatabaseConfiguration)elevated.ElevatedRuntimeDatabaseConfiguration(); bool isAzureDB = ConfigurationManagerUtils.IsDatabaseAzure(masterElevated); if (isAzureDB) { // On the unlikely scenario of an on-premise installation with Azure SQL, // we try to minimise the chance of timeouts. ConfigurationManagerUtils.QueryTimeout = 300; } ConfigurationManagerUtils.CheckIfUserHasNecessaryElevatedPermissions(masterElevated); if (!isAzureDB) { ConfigurationManagerUtils.CreateSqlServerCatalogIfDoesntExist(masterElevated, runtimeElevated.Catalog); } else { // We will not support automatically creating Azure databases. // An appropriate message is displayed. ConfigurationManagerUtils.CheckIfAzureDatabaseExists(masterElevated, runtimeElevated.Catalog); } // Prepare statements PreProcessedStatements.Add(ConfigurationManagerUtils.GrantSessionUserPermissions( (SessionDatabaseConfiguration)sessionConfiguration, (PlatformDatabaseConfiguration)platformConfiguration)); // Azure does not support changing the recovery model if (!isAzureDB) { try { // Set database recovery model to Simple ConfigurationManagerUtils.SetRecoveryModel(masterElevated, runtimeElevated.Catalog, "Simple"); } catch (Exception exception) { throw new ConfigurationOperationException("After the Configuration Tool closes, you must set the '" + runtimeElevated.Catalog + "' database recovery model to simple.", exception); } } }
private void GrantPlatformDatabaseUserPermissions(PlatformDatabaseConfiguration dbConfig) { var configRuntime = dbConfig.ElevatedRuntimeDatabaseConfiguration(); var configMaster = ConfigurationManagerUtils.ConfigurationToMaster(dbConfig); var authType = dbConfig.AuthenticationMode; // Create User if (ConfigurationManagerUtils.NeedsCreate(configMaster, configRuntime, dbConfig.AdminUser)) { if (authType == AuthenticationType.Windows_Authentication) { ConfigurationManagerUtils.AddIntegratedAuthLogin(configRuntime, dbConfig.AdminUser); } else { ConfigurationManagerUtils.AddDBAuthLogin(configMaster, dbConfig.AdminUser, dbConfig.AdminPassword); } } if (ConfigurationManagerUtils.NeedsPermissionsForAdmin(configRuntime, dbConfig.AdminUser)) { ConfigurationManagerUtils.AddAdminPermissions(configRuntime, dbConfig.AdminUser); } if (ConfigurationManagerUtils.NeedsCreate(configMaster, configRuntime, dbConfig.RuntimeUser)) { if (authType == AuthenticationType.Windows_Authentication) { ConfigurationManagerUtils.AddIntegratedAuthLogin(configRuntime, dbConfig.RuntimeUser); } else { ConfigurationManagerUtils.AddDBAuthLogin(configMaster, dbConfig.RuntimeUser, dbConfig.RuntimePassword); } } if (ConfigurationManagerUtils.NeedsPermissionsForReadWrite(configRuntime, dbConfig.RuntimeUser, dbConfig.AuthenticationMode)) { ConfigurationManagerUtils.AddReadWritePermissions(configRuntime, dbConfig.RuntimeUser); } try { ConfigurationManagerUtils.AddRuntimePermissionsAfterUpgradeScript(configRuntime, dbConfig.RuntimeUser); } catch { } GrantPlatformPermissions(dbConfig); }
public override void GrantUserPermissions() { var dbConfig = (LoggingDatabaseConfiguration)uiConfiguration; var configRuntime = dbConfig.ElevatedRuntimeDatabaseConfiguration(); var configMaster = ConfigurationManagerUtils.ConfigurationToMaster(dbConfig); var authType = dbConfig.AuthenticationMode; // Create User if (ConfigurationManagerUtils.NeedsCreate(configMaster, configRuntime, dbConfig.AdminUser)) { if (authType == AuthenticationType.Windows_Authentication) { ConfigurationManagerUtils.AddIntegratedAuthLogin(configRuntime, dbConfig.AdminUser); } else { ConfigurationManagerUtils.AddDBAuthLogin(configMaster, dbConfig.AdminUser, dbConfig.AdminPassword); } } if (ConfigurationManagerUtils.NeedsPermissionsForAdmin(configRuntime, dbConfig.AdminUser)) { ConfigurationManagerUtils.AddAdminPermissions(configRuntime, dbConfig.AdminUser); } if (ConfigurationManagerUtils.NeedsCreate(configMaster, configRuntime, dbConfig.RuntimeUser)) { if (authType == AuthenticationType.Windows_Authentication) { ConfigurationManagerUtils.AddIntegratedAuthLogin(configRuntime, dbConfig.RuntimeUser); } else { ConfigurationManagerUtils.AddDBAuthLogin(configMaster, dbConfig.RuntimeUser, dbConfig.RuntimePassword); } } if (ConfigurationManagerUtils.NeedsPermissionsForLog(configMaster, dbConfig.RuntimeUser, dbConfig.AuthenticationMode)) { ConfigurationManagerUtils.AddLogPermissions(configRuntime, dbConfig.RuntimeUser); } }