新建角色,权限继承自db_datareader;
删除原有用户的角色;
把所有用户添加到新建角色中;
这样的话这个用户就只有读取某一个库的权限而不能进行写入或者修改了;
但是整个服务器下这个权限的管控还涉及到了其他层面,比如登录名和用户的对应,用户和角色的对应。
一、问题现象ORA-04030: out of process memory when trying to allocate 64544 bytes (sort subheap)
二、问题诊断
根据错误提示,可以确定是在 *** 作数据库时内存不够造成的。
检查ORACLE数据库内存使用情况,发现SGA和PGA内存使用都有剩余。
然后检查 *** 作系统用户的内存设置,发现/etc/security/limits文件中应用账户sde内存限制过小。
三、问题解决
1、先调整数据库服务器上sde用户的单个进程的数据段限制,由131072调整为ulimited
$ ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) 131072
stack(kbytes) 4194304
memory(kbytes) 32768
coredump(blocks) 0
nofiles(descriptors) 2000
threads(per process) unlimited
processes(per user) unlimited
2、编辑/etc/security/limits文件,添加sde用户参数值
# vi /etc/security/limits
sde:
fsize = -1
core = -1
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1
fsize_hard = -1
core_hard = -1
cpu_hard = -1
data_hard = -1
rss_hard = -1
stack_hard = -1
nofiles_hard = -1
3、重启数据库监听
# su - oracle
$ lsnrctl stop
$ lsnrctl start
监听启动后,重新执行应用,应用成功执行。至此,问题解决。我来回答吧,我以前也遇到过你这样的问题,后来我自己解决了。
1、xp系统安装的 SQL数据库服务器,肯定是不能远程联机的,因为xp系统只能装非企业版的数据库SQL Server。非企业版SQL Server对远程连接做了限制,不可以远程连接。就是非本机的用户连接时,全部拒绝,但ipc连接登录后除外。
2、建议换做非xp系统,最好windows 2000server 或者 windows 2003 server+ SQL Server企业版。因为只有这些系统才可以安装企业版的SQL Server,因为其他非企业版的SQL Server只允许本机链接,非本机的sql链接将会出错。
3、装SQL Server的那台机器要开通1433端口,用于其他机器连接SQL Server。
4、查看安装的SQL Server服务器版本:SQL企业管理器-展开控制台跟目录-展开到-本地组-(local)-右击属性- 常规-产品,如果是企业版,大多显示 SQL Server Enterprice Edition, 否则显示其他的版本。个人版:SQL Server Personal Edition
如果还不清楚,可以问我。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)