Class: Mkxms::Mssql::Role

Inherits:
Object
  • Object
show all
Includes:
ExtendedProperties, Property::Hosting
Defined in:
lib/mkxms/mssql/role_handler.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ExtendedProperties

#extended_properties

Methods included from Property::Hosting

#extended_properties_sql

Constructor Details

#initialize(name, owner: nil) ⇒ Role

Returns a new instance of Role.



10
11
12
13
14
# File 'lib/mkxms/mssql/role_handler.rb', line 10

def initialize(name, owner: nil)
  @name = name
  @owner = owner
  @encompassing_roles = []
end

Instance Attribute Details

#encompassing_rolesObject (readonly)

Returns the value of attribute encompassing_roles.



17
18
19
# File 'lib/mkxms/mssql/role_handler.rb', line 17

def encompassing_roles
  @encompassing_roles
end

#nameObject

Returns the value of attribute name.



16
17
18
# File 'lib/mkxms/mssql/role_handler.rb', line 16

def name
  @name
end

#ownerObject

Returns the value of attribute owner.



16
17
18
# File 'lib/mkxms/mssql/role_handler.rb', line 16

def owner
  @owner
end

Instance Method Details

#authorization_sqlObject



23
24
25
# File 'lib/mkxms/mssql/role_handler.rb', line 23

def authorization_sql
  "ALTER AUTHORIZATION ON ROLE:: #{name} TO #{owner};" if owner
end

#definition_sqlObject



19
20
21
# File 'lib/mkxms/mssql/role_handler.rb', line 19

def definition_sql
  "CREATE ROLE #{name};" + extended_properties_sql.joined_on_new_lines
end

#membership_sqlObject



27
28
29
30
31
# File 'lib/mkxms/mssql/role_handler.rb', line 27

def membership_sql
  encompassing_roles.map do |encompassing_role|
    "EXEC sp_addrolemember '#{Utils.unquoted_name encompassing_role}', '#{Utils.unquoted_name name}';\n"
  end.join('')
end

#property_subject_identifiersObject



33
34
35
# File 'lib/mkxms/mssql/role_handler.rb', line 33

def property_subject_identifiers
  ['USER', Utils.unquoted_name(name)]
end