14
14
15
15
describe "Test sqlserver::role" , :node => host do
16
16
17
-
18
17
def ensure_sqlserver_logins_users ( host )
19
18
pp = <<-MANIFEST
20
19
sqlserver::config{'MSSQLSERVER':
@@ -24,18 +23,17 @@ def ensure_sqlserver_logins_users(host)
24
23
sqlserver::database{ '#{ DB_NAME } ':
25
24
}
26
25
sqlserver::login{'#{ LOGIN1 } ':
27
- login_type => 'SQL_LOGIN',
28
- password => 'Pupp3t1@',
26
+ login_type => 'SQL_LOGIN',
27
+ password => 'Pupp3t1@',
29
28
}
30
29
sqlserver::login{'#{ LOGIN2 } ':
31
- login_type => 'SQL_LOGIN',
32
- password => 'Pupp3t1@',
30
+ login_type => 'SQL_LOGIN',
31
+ password => 'Pupp3t1@',
33
32
}
34
33
sqlserver::login{'#{ LOGIN3 } ':
35
- login_type => 'SQL_LOGIN',
36
- password => 'Pupp3t1@',
34
+ login_type => 'SQL_LOGIN',
35
+ password => 'Pupp3t1@',
37
36
}
38
-
39
37
sqlserver::user{'#{ USER1 } ':
40
38
database => '#{ DB_NAME } ',
41
39
user => '#{ USER1 } ',
@@ -49,26 +47,44 @@ def ensure_sqlserver_logins_users(host)
49
47
end
50
48
end
51
49
52
- context "Test sqlser ::role" , { :testrail => [ '89161' , '89162' , '89163' , '89164' , '89165' ] } do
50
+ context "Start testing sqlserver ::role" , { :testrail => [ '89161' , '89162' , '89163' , '89164' , '89165' ] } do
53
51
before ( :all ) do
54
52
# Create database users
55
53
ensure_sqlserver_logins_users ( host )
56
54
end
57
55
before ( :each ) do
58
- #@new_sql_login = "Login" + SecureRandom.hex(2)
59
56
@role = "Role_" + SecureRandom . hex ( 2 )
60
57
end
58
+ after ( :each ) do
59
+ pp = <<-MANIFEST
60
+ sqlserver::config{'MSSQLSERVER':
61
+ admin_user => 'sa',
62
+ admin_pass => 'Pupp3t1@',
63
+ }
64
+ sqlserver::role{'#{ @role } ':
65
+ ensure => 'absent',
66
+ }
67
+ MANIFEST
68
+ apply_manifest_on ( host , pp ) do |r |
69
+ expect ( r . stderr ) . not_to match ( /Error/i )
70
+ end
71
+ end
61
72
62
73
after ( :all ) do
63
- # remove the newly created database
74
+ # remove all newly created logins
64
75
pp = <<-MANIFEST
65
- sqlserver::database{ '#{ DB_NAME } ':
66
- ensure => 'absent',
76
+ sqlserver::config{'MSSQLSERVER':
77
+ admin_user => 'sa',
78
+ admin_pass => 'Pupp3t1@',
79
+ }
80
+ sqlserver::user{'#{ USER1 } ':
81
+ database => '#{ DB_NAME } ',
82
+ ensure => 'absent',
67
83
}
68
84
MANIFEST
69
- # apply_manifest_on(host, pp) do |r|
70
- # expect(r.stderr).not_to match(/Error/i)
71
- # end
85
+ apply_manifest_on ( host , pp ) do |r |
86
+ expect ( r . stderr ) . not_to match ( /Error/i )
87
+ end
72
88
end
73
89
74
90
it "Create server role #{ @role } with optional authorization" do
@@ -111,7 +127,7 @@ def ensure_sqlserver_logins_users(host)
111
127
run_sql_query ( host , { :query => query , :server => hostname , :expected_row_count => 1 } )
112
128
end
113
129
114
- it "Create database-specific role: #{ @role } " do
130
+ it "Create database-specific role #{ @role } " do
115
131
pp = <<-MANIFEST
116
132
sqlserver::config{'MSSQLSERVER':
117
133
admin_user => 'sa',
@@ -141,7 +157,8 @@ def ensure_sqlserver_logins_users(host)
141
157
run_sql_query ( host , { :query => query , :server => hostname , :expected_row_count => 6 } )
142
158
end
143
159
144
- it "Create server role #{ @role } with optional members" do
160
+ # temporarily skip this test because of ticket MODULES-2543
161
+ xit "Create server role #{ @role } with optional members and optional members-purge" do
145
162
pp = <<-MANIFEST
146
163
sqlserver::config{'MSSQLSERVER':
147
164
admin_user => 'sa',
@@ -162,7 +179,7 @@ def ensure_sqlserver_logins_users(host)
162
179
163
180
#validate that the server role '#{@role}' is successfully created with specified permissions':
164
181
query = "USE #{ DB_NAME } ;
165
- SELECT spr.principal_id, spr.name,
182
+ SELECT spr.principal_id AS ID , spr.name AS Server_Role ,
166
183
spe.state_desc, spe.permission_name
167
184
FROM sys.server_principals AS spr
168
185
JOIN sys.server_permissions AS spe
@@ -173,20 +190,18 @@ def ensure_sqlserver_logins_users(host)
173
190
174
191
#validate that the t server role '#{@role}' has correct members (Login1, 2, 3)
175
192
query = "USE #{ DB_NAME } ;
176
- SELECT sp1 .principal_id AS LOGIN, sp1 .name AS ServerRole
177
- FROM sys.server_principals sp1
193
+ SELECT spr .principal_id AS ID, spr .name AS ServerRole
194
+ FROM sys.server_principals AS spr
178
195
JOIN sys.server_role_members m
179
- ON sp1.principal_id = m.member_principal_id
180
- JOIN sys.server_principals sp2
181
- ON m.role_principal_id = sp2.principal_id
182
- WHERE sp1.name = '#{ LOGIN1 } '
183
- OR sp1.name = '#{ LOGIN2 } '
184
- OR sp1.name = '#{ LOGIN3 } ';"
196
+ ON spr.principal_id = m.member_principal_id
197
+ WHERE spr.name = '#{ LOGIN1 } '
198
+ OR spr.name = '#{ LOGIN2 } '
199
+ OR spr.name = '#{ LOGIN3 } '
200
+ OR spr.name = 'LOGIN4';"
185
201
186
202
run_sql_query ( host , { :query => query , :server => hostname , :expected_row_count => 3 } )
187
- end
188
203
189
- it "Create server role #{ @role } with optional members_purge" do
204
+ puts "Create server role #{ @role } with optional members_purge:"
190
205
pp = <<-MANIFEST
191
206
sqlserver::config{'MSSQLSERVER':
192
207
admin_user => 'sa',
@@ -206,26 +221,17 @@ def ensure_sqlserver_logins_users(host)
206
221
expect ( r . stderr ) . not_to match ( /Error/i )
207
222
end
208
223
209
- #validate that the server role '#{@role}' is successfully created with specified permissions':
224
+ #validate that the t server role '#{@role}' has correct members (only Login3)
210
225
query = "USE #{ DB_NAME } ;
211
- SELECT spr.principal_id, spr.name,
212
- spe.state_desc, spe.permission_name
226
+ SELECT spr.principal_id AS ID, spr.name AS ServerRole
213
227
FROM sys.server_principals AS spr
214
- JOIN sys.server_permissions AS spe
215
- ON spe.grantee_principal_id = spr.principal_id
216
- WHERE spr.name = '#{ @role } ';"
217
-
218
- run_sql_query ( host , { :query => query , :server => hostname , :expected_row_count => 2 } )
219
-
220
- #validate that the t server role '#{@role}' has correct members (Login3)
221
- query = "USE #{ DB_NAME } ;
222
- SELECT sp1.principal_id AS ID, sp1.name AS Logins
223
- FROM sys.server_principals sp1
224
228
JOIN sys.server_role_members m
225
- ON sp1.principal_id = m.member_principal_id
226
- where sp1.name = '#{ @role } ';"
229
+ ON spr.principal_id = m.member_principal_id
230
+ WHERE spr.name = '#{ LOGIN1 } '
231
+ OR spr.name = '#{ LOGIN2 } '
232
+ OR spr.name = '#{ LOGIN3 } ';"
227
233
228
234
run_sql_query ( host , { :query => query , :server => hostname , :expected_row_count => 1 } )
229
235
end
230
236
end
231
- end
237
+ end
0 commit comments