社区
疑难问题
帖子详情
我自建的登录用户无对tempdb的select,insert等权限,怎么办?
101010
2003-04-04 01:17:43
我自建的登录用户无对tempdb的select,insert等权限,当然,我可以手动加将这个用户填加到tempdb数据库中,担是tempdb在机器重启后就重建,也就是说tempdb中那个我建的用户就没有了,这可怎么解决?
...全文
128
24
打赏
收藏
我自建的登录用户无对tempdb的select,insert等权限,怎么办?
我自建的登录用户无对tempdb的select,insert等权限,当然,我可以手动加将这个用户填加到tempdb数据库中,担是tempdb在机器重启后就重建,也就是说tempdb中那个我建的用户就没有了,这可怎么解决?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
101010
2003-04-11
打赏
举报
回复
因为我要对session的号码进行查询,这个问题现在算是基本解决了吧
seth99
2003-04-06
打赏
举报
回复
哈,我大概明白你遇到什么问题了,是不是ASP.NET的web.config里的userid不能用,你要赋予它sa的权限,没办法,Ms的冬冬在他还没有大面积推广宣传的时候是比较粗糙
seth99
2003-04-06
打赏
举报
回复
to 101010(1010):
你说的文字基本都对,但是一个关键的问题,你要干什么?????
用sa执行InstallSqlState.sql create DB:ASPState,添加一个ASPState的dbo,设好web.config,一切就ok了,其他就是ASP.NET与SQL Server的事了,那来那么多tempdb的事???
Yes,他用了一个启动脚本:ASPState_Startup初始化的他的环境和一个Job:ASPState_Job_DeleteExpiredSessions清理旧数据,但那事他自己run的,不需要人操心的,你不是想自己用程序去完成这些功能吧?! @_@
laokedou
2003-04-05
打赏
举报
回复
学习
littlestoneyi
2003-04-05
打赏
举报
回复
1 : 你的数据怎么可能放在TEMPDB中呢?里面的数据是不可能保存到下次启动的啊。这样的话你的数据不用在一段时间存在么?
2 :新建登陆的时候你应该选择数据库,添加服务器角色,数据库角色
3 :TEMPDB tempdb 数据库保存所有的临时表和临时存储过程。它还满足任何其它的临时存储要求,例如存储 SQL Server 生成的工作表。tempdb 数据库是全局资源,所有连接到系统的用户的临时表和存储过程都存储在该数据库中。tempdb 数据库在 SQL Server 每次启动时都重新创建,因此该数据库在系统启动时总是干净的。临时表和存储过程在连接断开时自动除去,而且当系统关闭后将没有任何连接处于活动状态,因此 tempdb 数据库中没有任何内容会从 SQL Server 的一个会话保存到另一个会话。
‘ 因此该数据库在系统启动时总是干净的’,在上面创建登陆以后能不能保存用户,你试一下。
cenxaoi
2003-04-05
打赏
举报
回复
不错不错,向你学习。
101010
2003-04-05
打赏
举报
回复
各路大侠,共同探讨,共同提高,我也查了一些内容,整理一下,我再总结一下,看完后请继续讨论:
1- jimmyxing,tempdb数据库会重建,所有我就是手动加用户和权限,下次重启也什么都没了.
2- cenxaoi,我查了一下联机帮助,这是摘抄:
本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft® SQL Server™ 2000 实例断开连接时被删除。全局临时表的名称以数学符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除,例如,如果创建名为 employees 的表,则任何人只要在数据库中有使用该表的安全权限就可以使用该表,除非它已删除。如果创建名为 #employees 的本地临时表,只有您能对该表执行操作且在断开连接时该表删除。如果创建名为 ##employees 的全局临时表,数据表中的任何用户均可对该表执行操作。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果该表在您创建后有其他用户使用,则 SQL Server在所有用户断开连接后删除该表。
而且,我这个问题是tempdb数据库在每次重启时会完全的重建,而我要用到的两个表是随tempdb一同在最开始建立的,就是说虽也是在启动时重建,而在使用时却不能当做#的临时表来用,而又无法显示调用,这就引到了 littlestoneyi
3- littlestoneyi,这个与管理员组有关么?怎么把库加入什么组?而tempdb每次要重建,即使加入,下次重启岂不是仍旧如前?但是我还是想知道怎么加入组?请说说,我又发现作业可以实现在每次启动SQL ServerAgent时执行T-SQL脚本,它与sp_procoption不同,后者是在SQL Server启动时执行一个master中的存储过程,但是怎么在master库中用这个存储过程实现在另一个库中建用户,并给其权限?(不必非tempdb库)
EXEC sp_grantdbaccess 'aspnetsession','aspnetsession' --建数据访问
GRANT ALL TO aspnetsession --赋予所有权限
EXEC sp_addrolemember 'db_owner', 'aspnetsession' --赋予数据库的角色
可是那个建数据库访问是在当前库中建访问,不是跨库建访问怎么办呐??
4-seth99 ASP.NET的SQLServer的Session管理脚本自动建库ASPState,并也用了sp_procoption在master库中建了存储过程ASPState_Startup,来在启动时在tempdb库中建表ASPStateTempApplications和ASPStateTempSessions,数据是存在这里的
101010
2003-04-05
打赏
举报
回复
seth99,ASP.NET我也是在研究,如是我没看错的话,它是建了一个库ASPState,不过实际上Session数据是存储在tempdb中的,不信,你看看!
还有我这个表是全局临时表。我是想用sp_procoption在SQL Server 一启动就在tempdb中建一个有db_owner的用户???怎么建?或者有其它方法?
seth99
2003-04-04
打赏
举报
回复
都不懂你再说什么?
ASP.NET的Session是可以存在SQL Server的DB中的,不是TempDB!!!!
==========================================================================
在web.config的sessionState部分:
<sessionState mode="SQLServer" sqlConnectionString="data source=mySession;userid=yourID;password=aftertoyou" cookieless= "false" timeout="20"
/>
==========================================================================
cenxaoi
2003-04-04
打赏
举报
回复
全局临时表实际上是在一条连接中全局
局部临时表是指在存储过程中建立的临时表
在一条连接中 建立一个临时表在这个连接断之前 这个临时表一直存在 叫做全局临时表
在这条连接上可以调用一个存储过程 过程里面也可以建立一张与全局临时表同名局部临时表
先建立一个存储过程 过程里建立一个局部临时表
create proc a
as
create table #a (i varchar(50))
局部临时表在过程结束后被删掉
然后
create table #a (i varchar(50)) --建立一张全局临时表
go
exec a --建立一张局部临时表并删掉
101010
2003-04-04
打赏
举报
回复
还有,littlestoneyi,我是在SQL Serverk 中建的一个登录用户,不是什么管理员组,你问的管理员组是指Windows的管理员组吧,在SQL Server中应该没有管理组吧,因为没有组的概念吧?
weixiao51
2003-04-04
打赏
举报
回复
是dbo.#a中dbo由问题吧,
select * from tempdb..#a
insert tempdb..#a values ()
试试
101010
2003-04-04
打赏
举报
回复
啊哈,越说问题越多了,总结一下:是这样,我现研究做一个ASP.NET+SQL Server和东东,ASP.NET的Session管理有四种,其中我选择了我认为最好的SQLServer,就是把Session数据自动存储在SQL Server数据库中,这个是微软提供的功能,不是我手动做的,可是我想查询当时的数据信息,可是无select,insert等权限,所以我就想填加用户,可一重启就没了,谢谢大家帮助,再谈谈:
littlestoneyi,tempdb是临时库,什么叫全局临时表还是局部临时表,我不懂啊。
101010
2003-04-04
打赏
举报
回复
cenxaoi,我显示调用是因为在开发ASP.NET的Session时,必须得显示式的用到tempdb中的数据,因为ASP.NET的Session管理在配置成SQLServer时,数据自动存储在tempdb中,而每次重启就一切消失,就是这样。呵,理解万岁。
littlestoneyi
2003-04-04
打赏
举报
回复
问一下哦。你的用户是管理员组么?这个应该是可以调用了。
可能是你的临时表的生存周期的问题。
全局临时表还是局部临时表????
littlestoneyi
2003-04-04
打赏
举报
回复
让数据库一启动就执行存储过程:
创建一个作业,作业的内容就是执行存储过程了啊。
在作业的调度中选择:每次启动SQL的时候。
保存作业。
cenxaoi
2003-04-04
打赏
举报
回复
你要显式调用干什么。
每一条连接创建的每一张临时表的名字可以相同
如A连接创建临时表 #a 在A连接中 这个表叫做#a 但你去查询分析器看一下,不要断掉原来的连接 那个表名是 #a_____________________________________________________数字后缀
Server 会为不同的连接创建的临时表做后缀 ,不同连接是不能访问别的连接建立的临时表。
临时库临时表中如何管理对于程序员来说是透明的。
你可能不理解临时表的机制。才想显示调用tempdb
101010
2003-04-04
打赏
举报
回复
我不知怎么才能让数据库一启动就执行存储过程
wuqiuzhi
2003-04-04
打赏
举报
回复
这样吧,写一个存储过程,每次进入的时候调用一次,产生这个登陆用户
101010
2003-04-04
打赏
举报
回复
wuqiuzhi,tempdb数据库是临时数据库,这个我刚刚问别人才知道的,每次机器重启后,tempdb数据库会重建,所有填加的用户当然就没有了。继续求助中……
加载更多回复(4)
第八节 SYBASE数据库
用户
管理基本概念.docx
例如,通过将JOHN和KATE这两个注册
用户
设置为OK_
SELECT
数据库
用户
的别名,他们就可以访问EXAMPLE数据库并具有与OK_
SELECT
相同的查询
权限
。而组是数据库
用户
的集合,通过控制组的
权限
可以间接控制组内的所有
用户
,但...
mysql的root
权限
下提权
在讨论MySQL中的提权操作之前,我们需要明确几个概念:提权是指
用户
从较低级别的
权限
提升到较高级别的
权限
的过程。在MySQL环境中,通常指的是非root
用户
通过某种手段获取root级别的
权限
。本文将详细介绍几种在MySQL...
sqlserver基础
- **master**:系统控制数据库,存储所有配置信息、
用户
登录
信息等。 - **model**:模板数据库,用于新建数据库时作为模板。 - **
temp
db
**:临时数据库,存储临时表和临时文件。 - **ms
db
**:主要用于记录计划...
SQL2005不挂科
`
SELECT
`用于查询数据,`DELETE`用于删除记录,`UPDATE`用于修改记录,`
INSERT
`用于添加新记录。 3. DCL则涉及数据访问
权限
的控制,如`GRANT`用于授予
用户
访问
权限
,`REVOKE`用于撤销
权限
,`COMMIT`用于提交事务,`...
SYBASE数据库管理
SYBASE支持多种
用户
类型,如普通
用户
、系统管理员等,每种类型的
用户
有不同的
权限
级别。 - **4.7.2 授予和撤销数据库对象访问
权限
** 授予和撤销数据库对象访问
权限
是通过GRANT和REVOKE语句来完成的,这可以控制...
疑难问题
22,301
社区成员
121,734
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章