Delen via


ALTER APPLICATION ROLE (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Hiermee wijzigt u de naam, het wachtwoord of het standaardschema van een toepassingsrol.

Transact-SQL syntaxis-conventies

Syntaxis

ALTER APPLICATION ROLE application_role_name
    WITH <set_item> [ , ...n ]

<set_item> ::=
    NAME = new_application_role_name
    | PASSWORD = 'password'
    | DEFAULT_SCHEMA = schema_name

Argumenten

application_role_name

De naam van de toepassingsrol die moet worden gewijzigd.

NAME = new_application_role_name

Hiermee geeft u de nieuwe naam van de toepassingsrol. Deze naam mag niet al worden gebruikt om te verwijzen naar een principal in de database.

PASSWORD = 'wachtwoord'

Hiermee geeft u het wachtwoord voor de toepassingsrol op. password moet voldoen aan de windows-wachtwoordbeleidsvereisten van de computer waarop het exemplaar van SQL Server wordt uitgevoerd. U moet altijd sterke wachtwoorden gebruiken.

DEFAULT_SCHEMA = schema_name

Hiermee geeft u het eerste schema op dat door de server wordt doorzocht wanneer de namen van objecten worden omgezet. schema_name kan een schema zijn dat niet bestaat in de database.

Opmerkingen

Als de naam van de nieuwe toepassingsrol al bestaat in de database, mislukt de instructie. Wanneer de naam, het wachtwoord of het standaardschema van een toepassingsrol wordt gewijzigd, wordt de id die aan de rol is gekoppeld, niet gewijzigd.

Belangrijk

Wachtwoordverloopbeleid wordt niet toegepast op wachtwoorden voor toepassingsrollen. Daarom moet u extra voorzichtig zijn bij het selecteren van sterke wachtwoorden. Toepassingen die toepassingsrollen aanroepen, moeten hun wachtwoorden opslaan.

Toepassingsrollen zijn zichtbaar in de sys.database_principals catalogusweergave.

Opmerking

Schema's zijn niet gelijk aan databasegebruikers. Gebruik systeemcatalogusweergaven om eventuele verschillen tussen databasegebruikers en schema's te identificeren.

Vanaf SQL Server 2012 (11.x) hebben SQL Server en Azure SQL DB een SHA-512-hash gebruikt in combinatie met een 32-bits willekeurige en unieke zout. Deze methode maakte het statistisch onfeilbaar voor aanvallers om wachtwoorden te afleiden.

SQL Server 2025 (17.x) Preview introduceert een iterated hash-algoritme, RFC2898, ook wel bekend als een functie voor sleutelontzetting op basis van een wachtwoord (PBKDF). Dit algoritme gebruikt nog steeds SHA-512, maar hashes het wachtwoord meerdere keren (100.000 iteraties), waardoor beveiligingsaanvallen aanzienlijk worden vertraagd. Deze wijziging verbetert de wachtwoordbeveiliging als reactie op veranderende beveiligingsrisico's en helpt klanten te voldoen aan de NIST SP 800-63b-richtlijnen. Deze beveiligingsverbetering maakt gebruik van een sterker hashing-algoritme, wat de aanmeldingstijd voor SQL-verificatieaanmelding enigszins kan verhogen. De impact is over het algemeen lager in omgevingen met verbindingspooling, maar kan in scenario's duidelijker zijn zonder pooling of waar de aanmeldingslatentie nauw wordt bewaakt.

Machtigingen

Vereist ALTER ANY APPLICATION ROLE-machtiging voor de database. Als u het standaardschema wilt wijzigen, heeft de gebruiker ook alter-machtigingen nodig voor de toepassingsrol. Een toepassingsrol kan een eigen standaardschema wijzigen, maar niet de naam of het wachtwoord.

Voorbeelden

Eén. De naam van de toepassingsrol wijzigen

In het volgende voorbeeld wordt de naam van de toepassingsrol weekly_receipts gewijzigd in receipts_ledger.

USE AdventureWorks2022;
CREATE APPLICATION ROLE weekly_receipts
    WITH PASSWORD = '987Gbv8$76sPYY5m23' ,
    DEFAULT_SCHEMA = Sales;
GO
ALTER APPLICATION ROLE weekly_receipts
    WITH NAME = receipts_ledger;
GO

B. Het wachtwoord van de toepassingsrol wijzigen

In het volgende voorbeeld wordt het wachtwoord van de toepassingsrol receipts_ledgergewijzigd.

ALTER APPLICATION ROLE receipts_ledger
    WITH PASSWORD = '897yUUbv867y$200nk2i';
GO

C. De naam, het wachtwoord en het standaardschema wijzigen

In het volgende voorbeeld worden de naam, het wachtwoord en het standaardschema van de toepassingsrol receipts_ledger tegelijkertijd gewijzigd.

ALTER APPLICATION ROLE receipts_ledger
    WITH NAME = weekly_ledger,
    PASSWORD = '897yUUbv77bsrEE00nk2i',
    DEFAULT_SCHEMA = Production;
GO