Skip to content

Commit b05cf64

Browse files
committed
implement reading of roles and fix reading of dbs
1 parent d9ad654 commit b05cf64

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

mssql/resource_database.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ func resourceDatabaseRead(d *schema.ResourceData, m interface{}) error {
5757
db := m.(*sql.DB)
5858
name := d.Id()
5959
row, err := checkTable(db, name)
60-
if err != nil {
60+
if err == sql.ErrNoRows {
61+
return nil
62+
}else if err != nil {
6163
return err
6264
}
6365

mssql/resource_role.go

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,29 @@ func resourceRoleCreate(d *schema.ResourceData, m interface{}) error {
3838
if err != nil {
3939
return err
4040
}
41-
d.SetId(name)
41+
row := db.QueryRow(fmt.Sprintf("SELECT principal_id FROM master.sys.server_principals WHERE name = '%s'", name))
42+
var id int
43+
if err = row.Scan(&id); err != nil {
44+
return err
45+
}
46+
47+
d.SetId(fmt.Sprint(id))
4248
return err
4349
}
4450

4551
func resourceRoleRead(d *schema.ResourceData, m interface{}) error {
52+
db := m.(*sql.DB)
53+
row := db.QueryRow(fmt.Sprintf("SELECT name FROM master.sys.server_principals WHERE principal_id = %s", d.Id()))
54+
var name string
55+
err := row.Scan(&name)
56+
if err == sql.ErrNoRows {
57+
return nil
58+
}else if err != nil {
59+
return err
60+
}
61+
if err := d.Set("name", name); err != nil {
62+
return err
63+
}
4664
return nil
4765
}
4866

0 commit comments

Comments
 (0)