Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2022 (16.x) a novější verze
Azure SQL Database
Azure SQL Managed Instance
V tomto článku se dozvíte, jak vytvořit tabulku registru jen pro připojení. V dalším kroku vložíte hodnoty do tabulky pouze pro zápis a pak se pokusíte aktualizovat data. Nakonec výsledky zobrazíte pomocí zobrazení hlavní knihy. Pro zařízení použijeme příklad přístupového systému s klíčovou kartou, což je vzor systému pouze pro přidávání. Náš příklad vám poskytne praktický pohled na relaci mezi tabulkou registru jen pro připojení a odpovídajícím zobrazením registru.
Další informace naleznete v tématu Tabulky účetní knihy pouze pro přidávání.
Požadavky
Vytvořte tabulku jen pro přidávání do účetní knihy
Vytvoříme KeyCardEvents tabulku s následujícím schématem.
| Název sloupce | Datový typ | Description |
|---|---|---|
| Identifikátor zaměstnance | int | Jedinečné ID zaměstnance přistupujícího k budově |
| PopisOperacePřístupu | nvarchar (MAX) | Přístupová operace zaměstnance |
| Časová značka | datetime2 | Datum a čas, kdy zaměstnanec přistupoval k budově |
Pomocí aplikace SQL Server Management Studio vytvořte nové schéma a tabulku s názvem
[AccessControl].[KeyCardEvents].CREATE SCHEMA [AccessControl]; GO CREATE TABLE [AccessControl].[KeyCardEvents] ( [EmployeeID] INT NOT NULL, [AccessOperationDescription] NVARCHAR (1024) NOT NULL, [Timestamp] Datetime2 NOT NULL ) WITH (LEDGER = ON (APPEND_ONLY = ON));Do tabulky přidejte novou událost
[AccessControl].[KeyCardEvents]přístupu k budově s následujícími hodnotami.INSERT INTO [AccessControl].[KeyCardEvents] VALUES ('43869', 'Building42', '2020-05-02T19:58:47.1234567');Zobrazte obsah tabulky KeyCardEvents a zadejte sloupce GENERATED ALWAYS , které se přidají do tabulky registru jen pro připojení.
SELECT * ,[ledger_start_transaction_id] ,[ledger_start_sequence_number] FROM [AccessControl].[KeyCardEvents];Zobrazte obsah zobrazení registru KeyCardEvents spolu se systémovým zobrazením transakcí registru a určete, kdo do tabulky přidal záznamy.
SELECT t.[commit_time] AS [CommitTime] , t.[principal_name] AS [UserName] , l.[EmployeeID] , l.[AccessOperationDescription] , l.[Timestamp] , l.[ledger_operation_type_desc] AS Operation FROM [AccessControl].[KeyCardEvents_Ledger] l JOIN sys.database_ledger_transactions t ON t.transaction_id = l.ledger_transaction_id ORDER BY t.commit_time DESC;Pokuste se aktualizovat tabulku
KeyCardEventszměnouEmployeeIDz43869na34184..UPDATE [AccessControl].[KeyCardEvents] SET [EmployeeID] = 34184;Zobrazí se chybová zpráva s informacemi, že aktualizace nejsou povolené pro tabulku registru jen pro připojení.
Povolení
Vytváření tabulek účetního záznamu pouze pro přidávání vyžaduje oprávnění ENABLE LEDGER. Další informace o oprávněních souvisejících s tabulkami registru najdete v tématu Oprávnění.