If you are allowing the grid to auto-generate columns for you, it will create a column for all of your public properties unless you mark them with the System.ComponentModel.BrowsableAttribute set to false. However, if you are having problems with authorization in your properties, you will have to turn off AutoGenerateColumns and manually define which columns your user is allowed to view. If you are trying to use the same grid for multiple users/roles, you will want to add code that calls the data source BO's CanReadProperty(propertyName) method for each property, adding or removing the column based on the returned value.
HTH
There is another property called ShowOnlyPredefinedDetails that can also bite you.
If it is set to "False" it will walk the child object exposed as properties. This can also cause problems like you describe even if the columns are set in design time.
EDITED changed "True" to "False". You want it to be "True" if you don't want the grid to bind to child collections.
Copyright (c) Marimer LLC