这个select user返回的到底是什么啊。。我用一public角色的账号test登陆,访问一下数据库a,然后执行,返回的是当前的登陆名test。。这时数据为换到master,再执行,返回的是guest 。我将这个账号在a数据库里的数据库角色设置成为db_owner。再执行select user; 返回的仍然是test。。我以为会是dbo。如果用 sa登陆,不管在哪里 执行返回的都是dbo。。这东西返回的到底是什么呃。。
调试欢乐多
Select User 即返回 dbo
那为什么我到master里面执行一下会变成guest啊?我的用户名并不是guest啊。。
当未指定默认值时,允许将系统为当前用户的数据库用户名提供的值插入表内。 语法
USER返回类型
char注释
USER 提供与 USER_NAME 系统函数相同的功能。在 CREATE TABLE 或 ALTER TABLE 语句中将 USER 和 DEFAULT 约束一起使用,或者将 USER 作为任何标准函数使用。示例
A. 使用 USER 返回当前用户的数据库用户名
本示例声明一个 char 类型的变量,将 USER 的当前值赋给它,然后打印该变量以及文本说明。DECLARE @usr char(30)
SET @usr = user
SELECT 'The current user's database username is: '+ @usr
GO下面是结果集:-----------------------------------------------------------------------
The current user's database username is: dbo (1 row(s) affected)
因为master数据库中没有该用户的映射
那为什么我将新建的用户在设置为a数据库的db_owner,然后执行select user;返回的不是dbo仍然是当前的用户名呢? 明明已经是db_owner了嘛。