Dela via


ÄNDRA PROGRAMROLL (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Ändrar namn, lösenord eller standardschema för en programroll.

Transact-SQL syntaxkonventioner

Syntax

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

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

Argumentpunkter

application_role_name

Namnet på den programroll som ska ändras.

NAME = new_application_role_name

Anger det nya namnet på programrollen. Det här namnet får inte redan användas för att referera till något huvudnamn i databasen.

PASSWORD =lösenord

Anger lösenordet för programrollen. password måste uppfylla kraven på Windows-lösenordsprinciper för den dator som kör instansen av SQL Server. Du bör alltid använda starka lösenord.

DEFAULT_SCHEMA = schema_name

Anger det första schemat som ska genomsökas av servern när det löser namnen på objekten. schema_name kan vara ett schema som inte finns i databasen.

Anmärkningar

Om det nya programrollnamnet redan finns i databasen misslyckas -instruktionen. När namnet, lösenordet eller standardschemat för en programroll ändras ändras inte det ID som är associerat med rollen.

Viktigt!

Förfalloprincip för lösenord tillämpas inte på programrolllösenord. Därför bör du vara extra noga med att välja starka lösenord. Program som anropar programroller måste lagra sina lösenord.

Programroller visas i sys.database_principals katalogvyn.

Anmärkning

Scheman motsvarar inte databasanvändare. Använd systemkatalogvyer för att identifiera eventuella skillnader mellan databasanvändare och scheman.

Från och med SQL Server 2012 (11.x) använde SQL Server och Azure SQL DB en SHA-512-hash i kombination med ett 32-bitars slumpmässigt och unikt salt. Den här metoden gjorde det statistiskt omöjligt för angripare att härleda lösenord.

Förhandsversionen av SQL Server 2025 (17.x) introducerar en itererad hashalgoritm, RFC2898, även kallad en lösenordsbaserad nyckelhärledningsfunktion (PBKDF). Den här algoritmen använder fortfarande SHA-512 men hashar lösenordet flera gånger (100 000 iterationer), vilket avsevärt saktar ner brute-force-attacker. Den här ändringen förbättrar lösenordsskyddet som svar på växande säkerhetshot och hjälper kunderna att följa NIST SP 800-63b-riktlinjerna.

Behörigheter

Kräver ALTER ANY APPLICATION ROLE permission på databasen. Om du vill ändra standardschemat behöver användaren också ALTER-behörighet för programrollen. En programroll kan ändra sitt eget standardschema, men inte dess namn eller lösenord.

Exempel

A. Ändra namnet på programrollen

I följande exempel ändras namnet på programrollen weekly_receipts till 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. Ändra lösenordet för programrollen

I följande exempel ändras lösenordet för programrollen receipts_ledger.

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

C. Ändra namn, lösenord och standardschema

I följande exempel ändras namn, lösenord och standardschema för programrollen receipts_ledger samtidigt.

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