如何设置现有 SQL 服务器数据库的所有者
How to set owner of existing SQL Server database
我正在尝试使用 C# 和 SMO 设置 SQL 服务器数据库所有者。如果数据库不存在,我可以指定它的所有者。但是,如果我想设置现有数据库的所有者,则会出现错误。
新数据库的工作代码:
Server server = new Server("WINSERVER\SQLEXPR");
server.ConnectionContext.LoginSecure = true;
Database database = new Database(server, "MyDatabase");
db.Create();
database.SetOwner("SOMEOWNER", true)
database.Refresh();
不适用于现有数据库的代码:
Server server = new Server("WINSERVER\SQLEXPR");
server.ConnectionContext.LoginSecure = true;
Database database = new Database(server, "MyDatabase");
database.SetOwner("SOMEOWNER", true)
database.Refresh();
错误:
Microsoft.SqlServer.Management.Smo.InvalidSmoOperationException: You cannot execute this operation since the object has not benn created.
Server server = new Server("WINSERVER\SQLEXPR");
server.ConnectionContext.LoginSecure = true;
// changed line below
Database database = server.Databases["MyDatabase"];
database.SetOwner("SOMEOWNER", true)
database.Refresh();
无需创建新的 Database
对象,只需从服务器上的数据库集合中提取即可。
我正在尝试使用 C# 和 SMO 设置 SQL 服务器数据库所有者。如果数据库不存在,我可以指定它的所有者。但是,如果我想设置现有数据库的所有者,则会出现错误。
新数据库的工作代码:
Server server = new Server("WINSERVER\SQLEXPR");
server.ConnectionContext.LoginSecure = true;
Database database = new Database(server, "MyDatabase");
db.Create();
database.SetOwner("SOMEOWNER", true)
database.Refresh();
不适用于现有数据库的代码:
Server server = new Server("WINSERVER\SQLEXPR");
server.ConnectionContext.LoginSecure = true;
Database database = new Database(server, "MyDatabase");
database.SetOwner("SOMEOWNER", true)
database.Refresh();
错误:
Microsoft.SqlServer.Management.Smo.InvalidSmoOperationException: You cannot execute this operation since the object has not benn created.
Server server = new Server("WINSERVER\SQLEXPR");
server.ConnectionContext.LoginSecure = true;
// changed line below
Database database = server.Databases["MyDatabase"];
database.SetOwner("SOMEOWNER", true)
database.Refresh();
无需创建新的 Database
对象,只需从服务器上的数据库集合中提取即可。