有没有办法使用SQL SMO修复SQL 2005/2008数据库中的孤立用户?
您可以通过枚举用户并查找空User.Login属性来相对轻松地找到孤立用户:
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
public static IList<string> GetOrphanedUsers(Server smoServer, string database) {
Database db = smoServer.Databases[database];
List<string> orphanedUsers = new List<string>();
foreach (User user in db.Users) {
if (!user.IsSystemObject && user.Login == string.Empty) {
orphanedUsers.Add(user.Name);
}
}
return orphanedUsers;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,修复并不像将User.Login属性设置为匹配的服务器登录名那么简单.User.Login确实有一个setter,但我不知道如何将它传播回服务器.它似乎只有在您创建新的时才可用User.
我考虑从数据库中删除用户并将服务器登录重新绑定到数据库,但这会带来额外的复杂性.重复分配默认模式,角色等复杂问题,如果他们在数据库中拥有模式,那么当您通过这些更改进行级联时会遇到更多麻烦.这足以让你想要内联SQL并完成它:
ServerConnection server = new ServerConnection("MyBox\SQLInstance");
Database db = server.Databases["MyDatabase"];
db.ExecuteNonQuery("sp_change_users_login 'auto_fix', 'ORPHANED_USERNAME'")
Run Code Online (Sandbox Code Playgroud)
但是,我宁愿不内联对系统存储过程的调用.
有什么建议?
我需要一个组件/类来限制某些方法的执行到N秒内的最大M次调用(或ms或nanos,无关紧要).
换句话说,我需要确保我的方法在N秒的滑动窗口中执行不超过M次.
如果您不知道现有的课程,请随时发布您的解决方案/想法如何实现这一点.
任何人都知道这是如何工作的,我正在使用.net成员资格提供程序,只想拉出一个xml列表.我也在使用.net mvc sdk.所以这就是我在控制器顶部添加[WebApiEnabled]时我可以成功拉出xml/json的问题.但是当我将[Authenticate]添加到我的控制器顶部时,我无法登录.作为示例curl -i -u"admin:pass"-H"Accept:application/xml" http:// localhost:xxxx/Book
在此先感谢您的帮助
我在我们的应用程序中发现的一个内存泄漏是java.awt.Window.allWindows私有静态字段,它跟踪每个Window实例化的内容.我们创建,使用,然后忘记了对话框,期望这些对话框会消失并被垃圾收集.这个私有字段会无限期地将它们保留在范围内,直到dispose()调用它们为止.根据定义,当他们超出范围时,我们不能这样做.
我不明白为什么这是这样设计的.与垃圾收集的精神相反,当我完成一个Window对象时,必须明确让系统知道.显然我已经完成了它,因为它超出了范围.
我理解该dispose()方法正在做什么:摆脱系统对等对象.我确实理解这是在Java之外,你需要一些方法来做到这一点,并且Swing不应该只是失去对这些对象的跟踪,否则它会有内存泄漏.但是Window,当我永远不再使用它时,通过永久保持对我周围的参考来实现的目标是什么?
有人可以解释为什么这是必要的吗?
我有一个datagridview,当用户通过单击列标题对其进行排序时,可能会也可能没有选择行.如果选择了行,则没有问题,但如果有0个选定行,则排序会自动选择一行(选择是一致的,但我不确定标准是什么).如何防止此行为发生.
如果相关,则DGV不是数据绑定并且已启用完整行选择.
如果我想表示使用二进制的"标志",这样我可以通过他们,并将它们存储到像一个对象状态或期权或类似的东西OPTION1 | OPTION2在那里OPTION1是0001 OPTION2是0010,这样,所获取传递为0011,较选项的组合.
我将如何在C++中执行此操作?我在想类似的东西
enum Option {
Option_1 = 0x01,
Option_2 = 0x02,
Option_3 = 0x04,
//...
}
void doSomething(Option options) {
//...
}
int main() {
doSomething(Option_1|Option_2);
}
Run Code Online (Sandbox Code Playgroud)
但理想情况下,doSomething知道如何解释给定的选项.
我是在正确的轨道上吗?有没有更好的办法?
更新
我不是必须Option为每种可能的组合定义一个吗?
出于某种原因,我的一个eclipse安装忽略了错误设置的@Override注释.例如,如果我放置@Override一个不被覆盖的方法,它就完全忽略它.
有关如何将其恢复到错误注释方法会显示错误的状态的任何想法?
目前,我有一个Windows服务项目.我还创建了另一个安装Windows服务的"安装项目".
我的问题是:我可以在同一个项目中添加另一个Windows服务吗?(这样,我可以使用1个安装程序,并且更容易在服务之间共享一些代码.)如果可以,这是否意味着当一个服务遇到错误时,两个服务都会停止,或者它们是否彼此独立地出错?
在每个项目编码1个服务或在一个项目中拥有多个服务之间是否存在任何其他差异?
我在SQL Server中有一些DateTime字段用于某些产品到期(ExpirationDate).我需要手动递增所有项目,并将其到期时间设置为比当前字段中存储的日期晚一个月.我怎样才能做到这一点?
java ×4
c# ×2
sql-server ×2
.net ×1
asp.net-mvc ×1
binary ×1
c++ ×1
datagridview ×1
datetime ×1
eclipse ×1
flags ×1
ide ×1
memory-leaks ×1
rest ×1
service ×1
smo ×1
sql ×1
t-sql ×1
throttling ×1
windows ×1
winforms ×1