--*********************查询数据库全部对象**********************************数据库
--存储过程
select * from sysobjects where xtype='P' --表值函数 xtype='IF',标量值函数 xtype='FN',聚合函数 xtype='AF'
函数
--*********************批量生成权限操做SQL**********************************spa
--存储过程
select 'GRANT EXEC ON dbo.['+name+'] TO 数据库用户名;' from sysobjects where xtype='P'
--表值函数
--select 'GRANT EXEC ON dbo.['+name+'] TO 数据库用户名;' from sysobjects where xtype IN('IF','TF') --表值函数不须要单独赋予权限
--标量值函数
select 'GRANT EXEC ON dbo.['+name+'] TO 数据库用户名;' from sysobjects where xtype='FN'
--聚合函数
select 'GRANT EXEC ON dbo.['+name+'] TO 数据库用户名;' from sysobjects where xtype='AF' code
--*********************查询拥有对象具体操做权限**********************************对象
--查询用户是否拥有存储过程(proc_AddQrcode)权限
SELECT * FROM sys.database_permissions WHERE major_id=OBJECT_ID('dbo.proc_AddQrcode')io
--*********************赋予用户对象操做权限**********************************object
--赋予存储过程(proc_AddQrcode)执行权限 给用户lyx
GRANT EXECUTE ON dbo.proc_AddQrcode TO lyx;select
--赋予标量值函数(f_AddDateByType)执行权限 给用户lyx
GRANT EXECUTE ON dbo.f_AddDateByType TO lyx;权限
其余权限:数据
INSERT
DELETE
UPDATE
SELECT
CONNECT
EXECUTE
REFERENCES
TAKE OWNERSHIP
VIEW DEFINITION
ALTER
--*******************************************************
SELECT OBJECT_ID(name),name from sysobjects where xtype='FN' AND OBJECT_ID(name)=855415857
--SELECT OBJECT_ID('pro_DeleteAndCopyHsCase')
SELECT major_id,TB.name,COUNT(DISTINCT TA.type)
FROM sys.database_permissions TA
LEFT JOIN sysobjects TB ON TA.major_id=OBJECT_ID(TB.name)
WHERE TB.xtype='P' --'FN'
GROUP BY major_id,TB.name
HAVING COUNT(DISTINCT TA.type)>1
SELECT * FROM sys.database_permissions WHERE major_id=855415857