今天突然发现数据库显示为单个用户并且,访问速度超慢,执行以下语句解决了 USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) //杀掉该进程FROM master..sysprocesses WHERE dbid=DB_ID('Test'); EXEC(@SQL);ALTER DATABASE Test SET MULTI_USER;
还原数据失败了,数据库变成单个用户模式,无法操作了,执行下面的语句就可以了 USE master GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) FROM master..sysprocesses WHERE dbid=DB_ID('数据库名称'); EXEC(@SQL); ALTER DATABASE 数据库名称 SET MULTI_USER
USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) FROM master..sysprocesses WHERE dbid=DB_ID('数据库名'); EXEC(@SQL); ALTER DATABASE 数据库名 SET MULTI_USER;
原因分析: 是操作数据库的用户被锁定了,思路是通过查找目标用户,将其解锁即可,可是这样太麻烦了. 解决办法执行如下sql: USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) FROM master..sysprocesses WHERE dbid=DB_ID('数据库名'); EXEC(@SQL); ALTER DATABASE 数据库名 SET
1.创建用户cmd2:CREATE LOGIN cmd2 WITH PASSWORD='123qwe!@#',DEFAULT_DATABASE=DEV_CMD CREATE USER cmd2 FOR LOGIN cmd2 WITH DEFAULT_SCHEMA=[dbo] 2.给用户增加数据库的访问权限可用代码:exec sp_grantdbaccess N'test' --使其成为当前数据库的合法用户 也可以使用操作界面 2.给cmd用户赋权限:G
更改用户定义的数据库角色注意事项 需具有以下一项或多项权限或成员身份才能运行此命令: 对角色具有 ALTER 权限 对数据库具有 ALTER ANY ROLE 权限 具有 db_securityadmin 固定数据库角色的成员身份 此外,若要更改固定数据库角色中的成员身份还需要: 具有 db_owner 固定数据库角色的成员身份 不能更改固定数据库角色的名称. 使用SSMS数据库管理工具更改用户定义的数据库角色 1.连接数据库->选择数据库->展开安全性->展开角色->展开数据库角