master
sql 112 lines 2.26 KB
Raw
1 IF DB_ID('netdata') IS NULL
2 BEGIN
3 CREATE DATABASE netdata;
4 END
5 GO
6
7 ALTER DATABASE netdata SET QUERY_STORE = ON;
8 GO
9
10 IF NOT EXISTS (SELECT 1 FROM sys.server_principals WHERE name = 'netdata_limited')
11 BEGIN
12 CREATE LOGIN netdata_limited WITH PASSWORD = 'Netdata123!';
13 END
14 GO
15
16 -- Ensure the limited user can start the collector in E2E:
17 -- A previous DENY will override GRANT, so revoke first.
18 REVOKE VIEW SERVER STATE FROM netdata_limited;
19 GO
20
21 GRANT VIEW SERVER STATE TO netdata_limited;
22 GO
23
24 USE msdb;
25 GO
26
27 IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = 'netdata_limited')
28 BEGIN
29 CREATE USER netdata_limited FOR LOGIN netdata_limited;
30 END
31 GO
32
33 GRANT SELECT ON dbo.sysjobs TO netdata_limited;
34 GO
35
36 USE netdata;
37 GO
38
39 IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = 'netdata_limited')
40 BEGIN
41 CREATE USER netdata_limited FOR LOGIN netdata_limited;
42 END
43 GO
44
45 GRANT CONNECT TO netdata_limited;
46 GO
47
48 IF OBJECT_ID('dbo.sample', 'U') IS NULL
49 BEGIN
50 CREATE TABLE dbo.sample (
51 id INT IDENTITY(1,1) PRIMARY KEY,
52 name NVARCHAR(64) NOT NULL,
53 value INT NOT NULL
54 );
55 END
56 GO
57
58 IF OBJECT_ID('dbo.deadlock_a', 'U') IS NULL
59 BEGIN
60 CREATE TABLE dbo.deadlock_a (
61 id INT PRIMARY KEY,
62 value INT NOT NULL
63 );
64 END
65 GO
66
67 IF OBJECT_ID('dbo.deadlock_b', 'U') IS NULL
68 BEGIN
69 CREATE TABLE dbo.deadlock_b (
70 id INT PRIMARY KEY,
71 value INT NOT NULL
72 );
73 END
74 GO
75
76 IF NOT EXISTS (SELECT 1 FROM dbo.deadlock_a WHERE id = 1)
77 BEGIN
78 INSERT INTO dbo.deadlock_a (id, value) VALUES (1, 10);
79 END
80 GO
81
82 IF NOT EXISTS (SELECT 1 FROM dbo.deadlock_b WHERE id = 1)
83 BEGIN
84 INSERT INTO dbo.deadlock_b (id, value) VALUES (1, 20);
85 END
86 GO
87
88 -- Table for error category testing (constraint violations, data type errors).
89 IF OBJECT_ID('dbo.error_test', 'U') IS NULL
90 BEGIN
91 CREATE TABLE dbo.error_test (
92 id INT PRIMARY KEY,
93 unique_col NVARCHAR(64) NOT NULL UNIQUE,
94 int_col INT NOT NULL
95 );
96 END
97 GO
98
99 IF NOT EXISTS (SELECT 1 FROM dbo.error_test WHERE id = 1)
100 BEGIN
101 INSERT INTO dbo.error_test (id, unique_col, int_col) VALUES (1, 'existing_value', 100);
102 END
103 GO
104
105 INSERT INTO dbo.sample (name, value)
106 VALUES ('alpha', 10), ('beta', 20), ('gamma', 30);
107 GO
108
109 SELECT COUNT(*) FROM dbo.sample;
110 SELECT * FROM dbo.sample WHERE value > 15;
111 UPDATE dbo.sample SET value = value + 1 WHERE name = 'alpha';
112 GO