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);
        }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
            }
        }