当前位置:首页 » 编程语言 » sql如何查找账户权限
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql如何查找账户权限

发布时间: 2022-05-27 14:49:43

‘壹’ sql 2000 如何查询用户权限

用户权限是保存在master表中的,可以使用系统存储过程查询用户权限,
通常你需要有master表的权限(如:sa),例:

sp_helpuser
报告有关当前数据库中 Microsoft® SQL Server™ 用户、Microsoft Windows NT® 用户和数据库角色的信息。

语法
sp_helpuser [ [ @name_in_db = ] 'security_account' ]

参数
[@name_in_db =] 'security_account'

当前数据库中 SQL Server 用户、Windows NT 用户或数据库角色的名称。security_account 必须存在于当前的数据库中。security_account 的数据类型为 sysname,默认值为 NULL。如果没有指定 security_account,系统过程将报告当前数据库中的所有用户、Windows NT 用户以及角色的信息。当指定 Windows NT 用户时,请指定该 Windows NT 用户在数据库中可被识别的名称(用 sp_grantdbaccess 添加)。

返回代码值
0(成功)或 1(失败)

注释
使用 sp_helpsrvrole 及 sp_helpsrvrolemember 返回固定服务器角色的信息。

为数据库角色执行 sp_helpuser 等价于为该数据库角色执行 sp_helpgroup。

权限
执行权限默认授予 public 角色。

示例
A. 列出所有用户
下面的示例列出当前数据库中所有的用户。

EXEC sp_helpuser

B. 列出单个用户的信息
下面的示例列出用户 dbo 的信息。

EXEC sp_helpuser 'dbo'

C. 列出某个数据库角色的信息
下面的示例列出 db_securityadmin 固定数据库角色的信息。

EXEC sp_helpuser 'db_securityadmin'

‘贰’ sql server 查看 账号 拥有哪些权限

1.把你的用户自定义数据库放入一个系统提供的数据库。系统提供的数据库有:db_owner,db_accessadmin,db_securityadmin,db_ddladmin,db_backupoperator,db_datareader,db_datawriter,db_denydatareader和db_denydatawriter。
2.把用户自定义数据库添加到将作为开发环境的db_datareader和db_datawriter中。如果已经有一个可以添加和/或删除用户自定义数据库对象的开发环境,就只需要取消这个权限或是把用户自定义数据库添加到db_ddladmin系统数据库中。
3.把数据库用户作为数据库成员添加到你的用户自定义数据库中。
4.取消所有的公共权限。
不要向公共用户发出DENY命令。如果你向公共用户发出了DENY命令,用户将不能读取用户自定义数据库的对象。用REVOKE命令代替DENY命令来取消读取公共数据库的权限。这样设置后,数据库的用户就是用户自定义数据库的成员了。用户自定义数据库具有读取用户自定义数据库对象的权限。因此这个用户自定义数据库允许数据库用户读取用户自定义数据库的对象。

‘叁’ 怎么设置SQL数据库用户权限

-- sqlserver:一、操作步骤
1.
首先进入数据库级别的【安全性】-【登录名】-【新建登录名】
(图1:新建登录名)
2.
在【常规】选项卡中,如下图所示,创建登陆名,并设置默认的数据库。
(图2:设置选项)
3.
在【用户映射】选项卡中,如下图所示,勾选需要设置的数据库,并设置【架构】,点击【确认】按钮,完成创建用户的操作
(图3:选择对应数据库)
4.
现在我们就可以对testlog数据库中的user表进行权限的设置了,【表】-【
属性】
(图4:选择对应表)
5.
在【权限】选项卡中,如下图所示,依此点击【添加】-【浏览】-【选择对象】
(图5:设置访问表的用户)
6.
在上面点击【确认】后,我们就可以下面的列表中找到对应的权限,如果你还想细化到列的权限的话,右下角还有一个【列权限】的按钮可以进行设置,点击【确认】按钮就完成了这些权限的设置了
(图6:权限列表)
7.
现在就使用testuser用户登陆数据库了,登陆后如下图所示,现在只能看到一个表了
(图7:效果)
二、注意事项
1.
在上面的第3步骤中需要注意:如果这里没有选择对应的数据库的话,之后去testlog数据库中是找不到testuser。
(图8:找不到testuser用户)
2.
在上面的第3步骤,设置完testlog数据后,需要点击【确认】按钮,完成创建用户操作,如果这个时候去设置【安全对象】,是无法在【添加】-【特定对象】-【对象类型】-【登陆名】-【浏览】中找到刚刚新建的testuser用户的。
3.
其实在数据库级别的【安全性】创建的用户是属于全局的,当设置了某个数据库,比如testlog之后,这个用户就会出现在这个数据库的【安全性】列表中。
如果删除testlog这个用户,会出现下面的提示。删除了后,这个用户就无法登陆了。需要去对应的数据库中删除用户,如果没有删除又创建,是会报错的。
(图9:删除testuser用户)
4.
在第6步的【显式权限】列表中,如果选择了【control】这个选项,那么在【select】中设置查询【列权限】就没有意义了,查询就不会受限制了。如果设置【列权限】,在正常情况下会显示下图的报错信息:
(图10:效果)
5.
在testlog数据库的【安全性】-【testuser】-【属性】-【安全对象】-【添加】-【对象类型】这里有更多关于数据库级别的一些对象类型可以设置。
(图11:其它对象类型)

‘肆’ SQL如何查看用户 权限

在对应的表 Li 上右键->属性->权限,就可以看到表的权限了。

‘伍’ 如何用sql语句查询一个用户,看看他具有哪些权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

1.查看所有用户:
select * from dba_users;
select * from all_users;
select * from user_users;

2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):
select * from dba_sys_privs;
select * from user_sys_privs;

3.查看角色(只能查看登陆用户拥有的角色)所包含的权限
sql>select * from role_sys_privs;

4.查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;

5.查看所有角色:
select * from dba_roles;

6.查看用户或角色所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;

7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)
select * from V$PWFILE_USERS

比如我要查看用户 wzsb的拥有的权限:

SQL> select * from dba_sys_privs where grantee='WZSB';

GRANTEE PRIVILEGE ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
WZSB CREATE TRIGGER NO
WZSB UNLIMITED TABLESPACE NO

比如我要查看用户 wzsb的拥有的角色:

SQL> select * from dba_role_privs where grantee='WZSB';

GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
------------------------------ ------------------------------ ------------ ------------
WZSB DBA NO YES

查看一个用户所有的权限及角色
select privilege from dba_sys_privs where grantee='WZSB'
union
select privilege from dba_sys_privs where grantee in
(select granted_role from dba_role_privs where grantee='WZSB' );

‘陆’ 如何正确查看SQL Server超级用户权限

查看SQL Server超级用户权限的实际操作步骤,在实际操作中sa 帐户在 SQL Server 数据库权利很大。其主要原因是因为 sa 属于 sysadmin 固定服务器角色。
普通 SQL Server 帐户,如果加入了 sysadmin 固定服务器角色,那么也会拥有和 sa 帐户一样的权利。
我们知道,sa 帐户在 SQL Server 中拥有至高无上的权利。归根结底在于 sa 属于 sysadmin 固定服务器角色。普通 SQL Server 帐户,如果加入了 sysadmin 固定服务器角色,那么也会拥有和 sa 帐户一样的权利。
查看自己是否具有SQL Server超级用户权限:
select is_srvrolemember('sysadmin')
如果返回值为 1,则有;0,没有。
SQL Server 系统存储过程 is_srvrolemember 语法:
is_srvrolemember ('role')
is_srvrolemember ('role', 'login')
把普通帐户加入到 sysadmin 角色:
exec sp_addsrvrolemember '普通帐户', 'sysadmin'
SQL Server 系统存储过程 sp_addsrvrolemember 语法:
sp_addsrvrolemember [ @loginame = ] 'login', [ @rolename = ] 'role'
以上的相关内容就是对查看SQL Server超级用户权限的介绍,望你能有所收获。

‘柒’ sql server2012 怎么查看用户权限

查看自己是否具有SQL Server超级用户权限:
select is_srvrolemember('sysadmin')

如果返回值为 1,则有;0,没有。

‘捌’ sql语句server中怎么查询用户的角色和权限

SQL Server中查询用户的对象权限和角色的方法

-- 查询用户的object权限
exec sp_helprotect NULL, 'UserName'
-- 查询用户拥有的role
exec sp_helpuser 'UserName'
-- 查询哪些用户拥有指定的系统role
exec sp_helpsrvrolemember 'sysadmin'
-- 可查询嵌套role
WITH tree_roles as
(
SELECT role_principal_id, member_principal_id
FROM sys.database_role_members
WHERE member_principal_id = USER_ID('UserName')
UNION ALL
SELECT c.role_principal_id,c.member_principal_id
FROM sys.database_role_members as c
inner join tree_roles
on tree_roles.member_principal_id = c.role_principal_id
)
SELECT distinct USER_NAME(role_principal_id) RoleName
FROM tree_roles

-- 其他权限相关基本表
select * from sysusers
select * from syspermissions

-- Who has access to my SQL Server instance?
SELECT
name as UserName, type_desc as UserType, is_disabled as IsDisabled
FROM sys.server_principals
where type_desc in('WINDOWS_LOGIN', 'SQL_LOGIN')
order by UserType, name, IsDisabled

-- Who has access to my Databases?
SELECT
dp.name as UserName, dp.type_desc as UserType, sp.name as LoginName, sp.type_desc as LoginType
FROM sys.database_principals dp
JOIN sys.server_principals sp ON dp.principal_id = sp.principal_id
order by UserType

select * from sys.database_principals

-- Server Roles
select
p.name as UserName, p.type_desc as UserType, pp.name as ServerRoleName, pp.type_desc as ServerRoleType
from sys.server_role_members roles
join sys.server_principals p on roles.member_principal_id = p.principal_id
join sys.server_principals pp on roles.role_principal_id = pp.principal_id
where pp.name in('sysadmin')
order by ServerRoleName, UserName

-- Database Roles
SELECT
p.name as UserName, p.type_desc as UserType, pp.name as DBRoleName, pp.type_desc as DBRoleType, pp.is_fixed_role as IfFixedRole
FROM sys.database_role_members roles
JOIN sys.database_principals p ON roles.member_principal_id = p.principal_id
JOIN sys.database_principals pp ON roles.role_principal_id = pp.principal_id
where pp.name in('db_owner', 'db_datawriter')

-- What can these users do?
SELECT
grantor.name as GrantorName, dp.state_desc as StateDesc, dp.class_desc as ClassDesc, dp.permission_name as PermissionName ,
OBJECT_NAME(major_id) as ObjectName, GranteeName = grantee.name
FROM sys.database_permissions dp
JOIN sys.database_principals grantee on dp.grantee_principal_id = grantee.principal_id
JOIN sys.database_principals grantor on dp.grantor_principal_id = grantor.principal_id
where permission_name like '%UPDATE%'

‘玖’ 怎么用SQL查询出当前用户所具有的系统权限

下面内容供你参考 0414243444546474849 1.查看所有用户: select * from dba_users; select * from all_users; select * from user_users; 2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限): select * from dba_sys_privs; select * from user_sys_privs; 3.查看角色(只能查看登陆用户拥有的角色)所包含的权限sql>select * from role_sys_privs; 4.查看用户对象权限: select * from dba_tab_privs; select * from all_tab_privs; select * from user_tab_privs; 5.查看所有角色: select * from dba_roles; 6.查看用户或角色所拥有的角色: select * from dba_role_privs; select * from user_role_privs; 7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)select * from V$PWFILE_USERS 比如我要查看用户 wzsb的拥有的权限: SQL> select * from dba_sys_privs where grantee='WZSB'; GRANTEE PRIVILEGE ADMIN_OPTION------------------------------ ---------------------------------------- ------------WZSB CREATE TRIGGER <a href="/s?wd=NO&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">NO</a>WZSB UNLIMITED TABLESPACE <a href="/s?wd=NO&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">NO</a> 比如我要查看用户 wzsb的拥有的角色: SQL> select * from dba_role_privs where grantee='WZSB'; GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE------------------------------ ------------------------------ ------------ ------------WZSB DBA <a href="/s?wd=NO&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">NO</a> YES 查看一个用户所有的权限及角色select privilege from dba_sys_privs where grantee='WZSB'unionselect privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='WZSB' );

‘拾’ 如何正确查看SQL Server超级用户权限

以下的文章主要向大家讲述的是正确查看SQL Server超级用户权限的实际操作步骤,在实际操作中sa 帐户在 SQL Server 数据库权利很大。其主要原因是因为 sa 属于 sysadmin 固定服务器角色。
普通 SQL Server 帐户,如果加入了 sysadmin 固定服务器角色,那么也会拥有和 sa 帐户一样的权利。

我们知道,sa 帐户在 SQL Server 中拥有至高无上的权利。归根结底在于 sa 属于 sysadmin 固定服务器角色。普通 SQL Server 帐户,如果加入了 sysadmin 固定服务器角色,那么也会拥有和 sa 帐户一样的权利。

查看自己是否具有SQL Server超级用户权限:
select is_srvrolemember('sysadmin')

如果返回值为 1,则有;0,没有。

SQL Server 系统存储过程 is_srvrolemember 语法:
is_srvrolemember ('role')
is_srvrolemember ('role', 'login')

把普通帐户加入到 sysadmin 角色:

exec sp_addsrvrolemember '普通帐户', 'sysadmin'

SQL Server 系统存储过程 sp_addsrvrolemember 语法:
sp_addsrvrolemember [ @loginame = ] 'login', [ @rolename = ] 'role'

以上的相关内容就是对查看SQL Server超级用户权限的介绍,望你能有所收获。