Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
SQL 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.
[ @cookie = ] süti KIMENET
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
B. Alkalmazásszerepkör aktiválása cookie-val, majd visszaállítás az eredeti környezetbe
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