在还原数据库bak备份文件时,由于某种原因(具体何种原因在此不进行分析)导致数据库还原后处于单用户模式,如下图: 单个用户模式导致,数据库无法打开,只能通过脚本去查询数据库内的表,然后进行查询数据,极大的不方便. use KYDCXT select * from sysobjects where xtype='u' order by name 解决方案: 更改数据库单用户模式为普通模式(多用户模式) 注意:代码中 KYDCXT 在使用时请改为你要操作的数据库名称 USE master; GO A
今天突然发现数据库显示为单个用户并且,访问速度超慢,执行以下语句解决了 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
原因分析: 是操作数据库的用户被锁定了,思路是通过查找目标用户,将其解锁即可,可是这样太麻烦了. 解决办法执行如下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
sql>show user查看自己的是哪个用户sql>select * from all_users; 查询所有用户sql>select * from user_users;查询当前用户下的详细信息sql>select * from dba_users;查询dba下所有用户信息sql>select * from dba_roles ;查看所有角色
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('cnpc'); EXEC(@SQL);ALTER DATABASE cnpc SET MULTI_USER; --改成多用户 https://www.cnblogs.com/reailcooker/p/99681
grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. grant select on testdb.* to common_user@’%’ grant insert on testdb.* to common_user@’%’ grant update on testdb.* to common_user@’%’ grant delete on testdb.* to common_user@'%' 或者 grant