Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Analysplattformssystem (PDW)
SQL-databas i Förhandsversion av Microsoft Fabric
Note
Utbildningsvägen Komma igång med frågor med Transact-SQL ger mer djupgående innehåll, tillsammans med praktiska exempel.
Att ge en användare åtkomst till en databas innebär tre steg. Först skapar du en inloggning. Med inloggningen kan användaren ansluta till SQL Server Database Engine. Sedan konfigurerar du inloggningen som en användare i den angivna databasen. Slutligen ger du användaren behörighet till databasobjekt. Den här lektionen visar de här tre stegen och visar hur du skapar en vy och en lagrad procedur som objekt.
Note
Den här lektionen förlitar sig på objekt som skapats i lektion 1 – Skapa databasobjekt. Slutför lektion 1 innan du fortsätter till lektion 2.
Prerequisites
För att slutföra den här självstudien behöver du SQL Server Management Studio och åtkomst till en SQL Server-instans.
- Installera SQL Server Management Studio.
Om du inte har åtkomst till en SQL Server-instans väljer du din plattform från följande länkar. Om du väljer SQL-autentisering använder du dina autentiseringsuppgifter för SQL Server-inloggning.
- Windows: Ladda ned SQL Server 2022 Developer Edition.
- Linux: Ladda ned SQL Server 2022 i en container.
Vi lyssnar: Om du hittar något inaktuellt eller felaktigt i den här artikeln, till exempel ett steg eller ett kodexempel, kan du berätta för oss. Du kan klicka på knappen Den här sidan i avsnittet Feedback längst ned på den här sidan. Vi läser alla feedbackobjekt om SQL, vanligtvis nästa dag. Thanks.
Skapa en inloggning
För att få åtkomst till databasmotorn behöver användarna en inloggning. Inloggningen kan representera användarens identitet som ett Windows-konto eller som medlem i en Windows-grupp, eller så kan inloggningen vara en SQL Server-inloggning som bara finns i SQL Server. När det är möjligt bör du använda Windows-autentisering.
Som standard har administratörer på datorn fullständig åtkomst till SQL Server. För den här lektionen vill vi ha en mindre privilegierad användare. Därför skapar du ett nytt lokalt Windows-autentiseringskonto på datorn. För att göra detta måste du vara administratör på datorn. Sedan ger du den nya användaren åtkomst till SQL Server.
Skapa ett nytt Windows-konto
- Välj Start, välj Kör, skriv
%SystemRoot%\system32\compmgmt.msc /si rutan Öppna och välj sedan OK för att öppna programmet Datorhantering. - Under Systemverktyg expanderar du Lokala användare och grupper, högerklickar på Användare och väljer sedan Ny användare.
- I rutan Användarnamn skriver du Mary.
- I rutan Lösenord och Bekräfta lösenord skriver du ett starkt lösenord och väljer sedan Skapa för att skapa en ny lokal Windows-användare.
Skapa en SQL-inloggning
I ett frågeredigerarefönster i SQL Server Management Studio skriver och kör du följande kod som computer_name ersätter med namnet på datorn.
FROM WINDOWS anger att Windows autentiserar användaren. Det valfria DEFAULT_DATABASE argumentet ansluter Mary till TestData databasen, såvida inte anslutningssträngen anger en annan databas. Den här instruktionen introducerar semikolonet som en valfri avslutning för en Transact-SQL-instruktion.
CREATE LOGIN [computer_name\Mary]
FROM WINDOWS
WITH DEFAULT_DATABASE = [TestData];
GO
Detta auktoriserar ett användarnamn Marysom autentiseras av datorn för att få åtkomst till den här instansen av SQL Server. Om det finns mer än en instans av SQL Server på datorn måste du skapa inloggningen för varje instans som Mary måste komma åt.
Note
Eftersom Mary det inte är ett domänkonto kan det här användarnamnet bara autentiseras på den här datorn.
Bevilja åtkomst till en databas
Kontot Mary har nu åtkomst till den här instansen av SQL Server, men har inte behörighet att komma åt databaserna. Kontot har inte ens åtkomst till standarddatabasen TestData förrän du har auktorisera kontot som en databasanvändare.
Om du vill bevilja Mary åtkomst växlar du till TestData databasen och använder sedan instruktionen CREATE USER för att mappa inloggningen till en användare med namnet Mary.
Skapa en användare i en databas
Skriv och kör följande instruktioner (ersätt computer_name med namnet på datorn) för att ge Mary åtkomst till TestData databasen.
USE [TestData];
GO
CREATE USER [Mary] FOR LOGIN [computer_name\Mary];
GO
Nu har Mary åtkomst till både SQL Server och TestData databasen.
Skapa vyer och lagrade procedurer
Som administratör kan du köra SELECT från Products tabellen och vw_Names vyn och köra proceduren pr_Names , men det kan inte Mary. Om du vill ge Mary de behörigheter som krävs använder du GRANT-instruktionen.
Bevilja behörighet till lagrad procedur
Kör följande instruktion för att ge Mary behörighet för EXECUTE den pr_Names lagrade proceduren.
GRANT EXECUTE ON pr_Names TO Mary;
GO
I det här scenariot kan Mary bara komma åt Products tabellen med hjälp av den lagrade proceduren. Om du vill att Mary ska kunna köra en SELECT-instruktion mot vyn måste du även köra GRANT SELECT ON vw_Names TO Mary. Om du vill ta bort åtkomsten till databasobjekt använder du REVOKE-instruktionen.
Note
Om tabellen, vyn och den lagrade proceduren inte ägs av samma schema blir beviljandet av behörigheter mer komplext.
About GRANT
Du måste ha behörigheten EXECUTE för att köra en lagrad procedur. Du måste ha behörigheten SELECT, INSERT, UPDATE och DELETE för att få åtkomst till och ändra data. GRANT-instruktionen används också för andra behörigheter, till exempel behörighet att skapa tabeller.
Next steps
I nästa artikel lär du dig hur du tar bort databasobjekt som du skapade i de andra lektionerna.
Gå till nästa artikel om du vill veta mer: