sys.sp_setapprole (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseSQL adatbázis a Microsoft Fabric-ben

Aktiválja az alkalmazásszerepkörhöz társított engedélyeket az aktuális adatbázisban.

Transact-SQL szintaxis konvenciók

Szemantika

sys.sp_setapprole
    [ @rolename = ] N'rolename'
    , [ @password = ] N'password'
    [ , [ @encrypt = ] 'encrypt' ]
    [ , [ @fCreateCookie = ] fCreateCookie ]
    [ , [ @cookie = ] cookie OUTPUT ]
[ ; ]

Érvek

[ @rolename = ] N'rolename'

Az aktuális adatbázisban definiált alkalmazásszerepkör neve. @rolenamea sysname, alapértelmezés nélkül. @rolename az aktuális adatbázisban kell lennie.

[ @password = ] { encrypt N'password' }

Az alkalmazásszerepkör aktiválásához szükséges jelszó. @password a sysname , alapértelmezés nélkül. @password az ODBC encrypt függvény használatával el lehet rögzíteni. A függvény használatakor a encrypt jelszót Unicode-sztringgé kell konvertálni az első idézőjel elé helyezéssel N .

A titkosítási beállítás nem támogatott az SqlClientet használó kapcsolatokon.

Fontos

Az ODBC encrypt függvény nem biztosít titkosítást. Ne támaszkodjon erre a függvényre a hálózaton keresztül továbbított jelszavak védelme érdekében. Ha ezek az információk egy hálózaton keresztül lesznek továbbítva, használja a TLS-t vagy az IPSec-et.

[ @encrypt = ] { 'nincs' | 'ODBC' }

Megadja a titkosítás típusát, mielőtt elküldené a jelszót az SQL Server adatbázismotorjának. @encryptvarchar(10), és ezek egyike lehet.

Érték Leírás
none (alapértelmezett) Azt adja meg, hogy a rendszer ne használ elfedést. A jelszó egyszerű szövegként lesz átadva az SQL Servernek.
odbc Megadja, hogy az ODBC elrejtse a jelszót az ODBC encrypt függvénnyel, mielőtt elküldené a jelszót az SQL Server adatbázismotornak. Ez az érték csak akkor adható meg, ha ODBC-ügyfelet vagy OLE DB-szolgáltatót használ az SQL Serverhez.

[ @fCreateCookie = ] { 'true' | 'hamis' }

Meghatározza, hogy létre kell-e hozni egy cookie-t. @fCreateCookiebit, alapértelmezés szerint 0.

true implicit módon konvertálódik 1. false implicit módon konvertálódik 0.

Megadja a cookie-t tartalmazó kimeneti paramétert. @cookie egy OUTPUTvarbináris (8000) típusú paraméter. A cookie csak akkor jön létre, ha a @fCreateCookie értéke .true

Megjegyzés:

Bár a jelenlegi implementáció a varbinary(50) értéket adja vissza, az alkalmazásoknak a dokumentált varbinary(8000)-et kell lefoglalni, hogy az alkalmazás továbbra is megfelelően működjön, ha a cookie visszatérési mérete egy későbbi kiadásban megnő.

Kódértékek visszaadása

0 (sikeres) és 1 (sikertelen).

Megjegyzések

Miután aktiválta az alkalmazásszerepkört a használatával sp_setapprole, a szerepkör aktív marad, amíg a felhasználó le nem választja a kiszolgálót, vagy végrehajtja sp_unsetapproleazt. Nem használható sp_setapprole más tárolt eljáráson, eseményindítón vagy felhasználó által meghatározott tranzakción belül. Csak közvetlen Transact-SQL utasításként hajtható végre.

Az alkalmazásszerepkörök áttekintését az Alkalmazásszerepkörök című témakörben tekintheti meg.

Az alkalmazásszerepkör engedélyezésekor mindig használjon titkosított kapcsolatot az alkalmazásszerepkör jelszavának védelméhez, amikor hálózaton keresztül továbbítja azt.

Az encrypt nem támogatja a Microsoft ODBC-beállítást. Ha hitelesítő adatokat kell tárolnia, titkosítsa őket a titkosítási API-függvényekkel. A @password paraméter egyirányú kivonatként van tárolva. Az SQL Server sp_addapprole korábbi verzióival való kompatibilitás megőrzése érdekében nem kényszeríti ki a jelszó összetettségi szabályzatát. A jelszó összetettségi szabályzatának érvényesítéséhez használd CREATE APPLICATION ROLE.

Engedélyek

Nyilvános tagságra és a szerepkör jelszavának ismeretére van szükség.

Példák

Egy. Alkalmazásszerepkör aktiválása titkosítási beállítás nélkül

Az alábbi példa aktivál egy, az aktuális felhasználó által használt alkalmazáshoz tervezett engedélyekkel létrehozott alkalmazásszerepkört SalesAppRole. Cserélje le <password> erős jelszóra.

EXECUTE sys.sp_setapprole 'SalesApprole', '<password>';
GO

Az alábbi példa aktiválja az Sales11 alkalmazásszerepkört, és létrehoz egy cookie-t. A példa az aktuális felhasználó nevét adja vissza, majd a végrehajtással sp_unsetapprolevisszatér az eredeti környezethez. Cserélje le <password> erős jelszóra.

DECLARE @cookie AS VARBINARY (8000);

EXECUTE sys.sp_setapprole
    'Sales11',
    '<password>',
    @fCreateCookie = true,
    @cookie = @cookie OUTPUT;

Az alkalmazásszerepkör aktív. USER_NAME()az alkalmazásszerepkör nevét adja vissza. Sales11

SELECT USER_NAME();

Törölje az alkalmazásszerepkört.

EXECUTE sys.sp_unsetapprole @cookie;
GO

Az alkalmazásszerepkör már nem aktív. Az eredeti környezet visszaállítva. USER_NAME() az eredeti felhasználó nevét adja vissza.

SELECT USER_NAME();
GO